摘要:可以处理定义的数据库的升级生成可配置的升级脚本编辑文件来建立与数据库实体之间的关联改成和自己的数据库相对应编辑来与建立关联定义了数据库与类之间的映射为了关联与需要修改在定义数据库表时我们需要继承这时可以改成即可如果是用的库可以改成处理升级在
alembic可以处理sqlalchemy定义的数据库的升级.
1. 生成可配置的升级脚本 alembic init update. ├── alembic.ini └── update ├── env.py ├── env.pyc ├── README ├── script.py.mako └── versions2. 编辑alembic.ini文件来建立alembic与数据库实体之间的关联
sqlalchemy.url = driver://user:pass@localhost/dbname
改成和自己的数据库engine相对应
3. 编辑env.py来与sqlalchemy建立关联sqlalchemy定义了数据库与类之间的映射, 为了关联alembic与sqlalchemy, 需要修改target_metadata = None
在定义数据库表时, 我们需要继承Base = declarative_base(), 这时可以改成target_metadata = Base.metadata即可. 如果是用的elixir库, 可以改成target_metadata = elixir.metadata
4. alembic处理升级alembic在处理数据库升级时, 需要知道当前的数据库更新到了哪个升级脚本, 在数据库中会有alembic_version记录这一项, 如果没有的话, 需要运行alembic history来查看当前的脚本之间的前后继关系
c13aac80dc0d -> a6bd6b66dc68 (head), v1.0.6 8af8ba526412 -> c13aac80dc0d, 12_27 c07041b991dd -> 8af8ba526412, v1.0.4 d9e1223a5cc6 -> c07041b991dd, 002_update_for_12.2-> d9e1223a5cc6, v1.0.2
如果我确定我当前的数据库是由c13aac80dc0d对应的脚本升级上来的, 那么执行alembic stamp c13aac80dc0d来更新数据库, 表明当前数据库对应到了这个脚本, 此时可以执行alembic current来查看确实是这个
版本.
之后, 可以基于当前的数据库与我们已经定义好的表之间自动生成升级脚本alembic revision --autogenerate -m "create update files", 可能还需要改一些语句, 或者数据库表之间的关系的调整还涉及到数据>记录的内容更改与填充.
5. 升降级命令alembic upgrade +1 alembic downgrade -16. 建议
不要自己去写python或者Sql脚本创建数据库实体, 建议从一开始就用alembic操作数据库. 就是说在项目里面跟数据库相关的操作, 只需要定义好了orm, 之后代码里面做增删查改就够了. 其它的创建数据库, 创建表
, 更改表结构的操作都由alembic来接管.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38348.html
摘要:当使用到后者这类微型框架时,根据业务场景不同,如果需要处理模型的建立升级和迁移的问题,可以考虑下接下来要介绍的和。这时候检查数据库,可以发现生成了张表,升级工作就完成了。而我在使用的实际项目中是操作的原生,异步类型的配合使用留待以后探究。 背景 Python的世界里有许多web框架:比如大而全的 Django, 提供了模型定义迁移,到路由处理,再到视图的渲染等整套功能;比如小巧灵活的F...
摘要:是的一个数据库工具,提供了强大的对象模型间的转换,可以满足绝大多数数据库操作的需求,并且支持多种数据库引擎,,等,在这里记录基本用法和学习笔记一安装通过安装二使用首先是连接到数据库,支持多个数据库引擎,不同的数据库引擎连接字符串不一样,常用 SQLAlchemy是python的一个数据库ORM工具,提供了强大的对象模型间的转换,可以满足绝大多数数据库操作的需求,并且支持多种数据库引擎(...
摘要:在实际项目中,这么做肯定是不行的实际项目中不会使用内存数据库,这种数据库一般只是在单元测试中使用。接下来,我们将会了解中单元测试的相关知识。 在上一篇文章,我们介绍了SQLAlchemy的基本概念,也介绍了基本的使用流程。本文我们结合webdemo这个项目来介绍如何在项目中使用SQLAlchemy。另外,我们还会介绍数据库版本管理的概念和实践,这也是OpenStack每个项目都需要做的...
阅读 1487·2021-11-24 11:16
阅读 2689·2021-07-28 12:32
阅读 2302·2019-08-30 11:22
阅读 1440·2019-08-30 11:01
阅读 595·2019-08-29 16:24
阅读 3547·2019-08-29 12:52
阅读 1625·2019-08-29 12:15
阅读 1332·2019-08-29 11:18