命令:
进入mysql:mysql -u mysql -p
模型变更命令:
python manage.py makemigrations
python manage.py migrate
虚拟环境:source venv/bin/activate
1.fastapi简易结构:
2.先进入文件夹:cd /Users/chenwenbin/PycharmProjects/djangoProject/myproject
启动命令:uvicorn fastapi_app.main:app --reload --host 0.0.0.0 --port 8001 (项目文件夹外面一层执行)
访问是http://127.0.0.1:8001/get_item_data/ (端口根据自己设置)
3.vue结构
my-vue-app/
├── node_modules/
├── public/
│ ├── index.html
│ └── favicon.ico
├── src/
│ ├── assets/
│ ├── components/
│ │ └── HelloWorld.vue
│ ├── App.vue
│ ├── main.js
│ └── router/
│ └── index.js
├── package.json
└── vue.config.js
2.先进入文件夹:cd /Users/chenwenbin/PycharmProjects/djangoProject/myproject/my-vue-app
启动命令:npm run serve (项目文件夹里面一层执行)
访问是http://localhost:3000/ (端口根据自己设置)
4.前后端两个永久挂起方法:
fastapi命令 cd /path/to/target_directory# uvicorn fastapi_app.main:app --reload --host 0.0.0.0 --port 8001
vue命令 cd /path/to/target_directory/my-vue-app# npm run serve
退出tmux 按下 Ctrl + b,然后按 d 键。
强制终止所有会话:如果您想强制终止所有 tmux 会话,可以在终端中运行以下命令:
tmux kill-server
5.nginx设置问题
进入编辑命令 sudo nano /etc/nginx/conf.d/tiaowola.com.conf
重启命令 sudo systemctl restart nginx
6 管理启动和终止程序命令:
(1)使用 concurrently 包来同时启动 Vue 和 FastAPI 应用
安装 concurrently 包:
npm install concurrently --save-dev
(2)在 package.json 文件的 scripts 部分添加一个新的脚本 "scripts": { "serve": "cd /path/to/target_directory/my-vue-app && PORT=3000 vue-cli-service serve", "build": "cd /path/to/target_directory/my-vue-app && vue-cli-service build", "lint": "cd /path/to/target_directory/my-vue-app && vue-cli-service lint", "start:fastapi": "cd /path/to/target_directory && nohup uvicorn fastapi_app.main:app --reload --host 0.0.0.0 --port 8001 &", "start:django": "cd /path/to/target_directory/myproject/ && . venv/bin/activate && nohup python manage.py runserver 0.0.0.0:9000 &", "start:all": "concurrently \"npm run serve\" \"npm run start:fastapi\" \"npm run start:django\"" }
(3)使用以下命令来同时启动 Vue 和 FastAPI 应用:
npm run start:all
(4)永久启动命令汇集:
fastapi:cd /path/to/target_directory && nohup uvicorn fastapi_app.main:app --reload --host 0.0.0.0 --port 8001 &
django:cd /path/to/target_directory/myproject/ && . venv/bin/activate && nohup python manage.py runserver 0.0.0.0:9000 &
(5)终止命令:
lsof -i :9000 和 8001
kill -9 pid (查询的pid)
删除迁移文件对数据库数据的影响取决于具体操作方式。以下是详细说明:
1. 开发环境
在开发环境中,删除迁移文件后可以通过以下步骤重新生成和应用迁移:
- 删除旧的迁移文件: 删除
myapp/migrations
目录中的所有迁移文件,但保留__init__.py
文件。 - 重新生成迁移文件: 使用如下命令重新生成迁移文件:
python manage.py makemigrations myapp
- 重新应用迁移: 使用如下命令重新应用迁移:
python manage.py migrate
2. 生产环境
在生产环境中,删除迁移文件是非常危险的操作,因为这会导致数据库与代码不同步。建议采用以下方式进行迁移文件的管理:
-
合并迁移文件: 使用 Django 提供的
squashmigrations
命令合并迁移文件。例如:python manage.py squashmigrations myapp 0001 0050
这将合并
0001
到0050
之间的所有迁移文件,生成一个新的迁移文件。 -
备份数据库: 在进行任何迁移操作之前,务必备份数据库以防数据丢失或损坏。
-
测试迁移: 在测试环境中验证合并后的迁移文件,确保其可以正确应用并且不会对现有数据造成影响。
总结
- 开发环境:可以删除迁移文件并重新生成和应用。
- 生产环境:建议使用
squashmigrations
合并迁移文件,并确保在操作前备份数据库。