tornado数据库迁移
SQLAlchemy 版本遷移
pip install alembic
完成 pip 安裝之后
- 在 shell 或終端里面 cd 到項目根目錄執行
alembic init alembic
-
如果用虛擬機的 pycharm 把生成的文件 download 回來(包括 alembic 目錄和 alembic.ini)
-
修改 alembic.ini 設置數據庫連接。
默認是 sqlalchemy.url = driver://user:pass@localhost/dbname
sqlalchemy.url = mysql+pymysql://admin:Root110qwe@127.0.0.1:3306/tornado
-
在 env.py 中設置,將target_metadata賦值成數據庫的元數據(metadata) 我這是是BASE元數據(導入)
如果執行 revision 有 import 報錯,注意是否正確將當前項目目錄添加到 sys.path 路徑 -
還有將路徑添加
import sys from os.path import abspath, dirname root = dirname(dirname(abspath(__file__))) # 把項目根目錄加入 sys.path print(root) sys.path.append(root)
我這里有users和posts兩張表
-
配置完成執行
alembic revision --autogenerate -m “create_user_table”
這里可以看到虛擬機目錄在 alembic/versions 里生成了 py 文件,然后執行
alembic upgrade head
這樣就會更新 mysql 數據庫了
同時會在versions下生成對應的py文件,里面執行的都是SQL語句
如果再次修改后再次執行,會報Target database is not up to date.
因為在version中有該表的記錄,解決的辦法就是刪到對應的記錄的py文件
總結
以上是生活随笔為你收集整理的tornado数据库迁移的全部內容,希望文章能夠幫你解決所遇到的問題。