tornado数据库迁移
SQLAlchemy版本迁移pip install alembic完成 pip 安装之后在 shell 或终端里面 cd 到项目根目录执行alembic init alembic如果用虚拟机的 pycharm 把生成的文件 download 回来(包括 alembic目录和 alembic.ini)修改 alembic.ini 设置数据库连接。默认是...
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文件
更多推荐
所有评论(0)