在sql中工作的数据库模式迁移工具
sqlturk的Python项目详细描述
概述
这个工具帮助您跟踪和发展您的数据库模式(sql)。
它是这样工作的每当您对数据库模式进行更改时,都会将它们放入“迁移”中—只需一个带有一系列SQL语句的.sql文件。Sqlturk跟踪已应用的迁移,并以保证的顺序运行它们
设计
有很多工具可以解决数据库模式问题 迁移。以下是sqlturk的不同之处:
- 单向迁移。无法“回滚”迁移。在我的 经验,“降级”脚本几乎从未使用过,但编写它们却给开发人员增加了相当大的负担它们的出现可能会增加一种错误的安全感,因为它们很少使用,所以很有可能无论如何都无法正常工作
- python不可知。Sqlturk根据SQL DDL进行操作它不适用于SQLAlchemy ORM模型或Django模型,因此可以在更广泛的上下文中使用普通sql还意味着一个对python一无所知的称职dba可以编写这些脚本。或者它们可以由另一个工具自动生成。
- 没有魔法我想要一个明显的,容易理解的工具更改数据库模式可能会产生很大的后果,因此了解发生了什么非常重要
不相信?一些更复杂的工具:Django South和sqlalchemy-migrate
API使用
简短示例:
>>> from sqlturk.migration import MigrationTool >>> tool = MigrationTool('sqlite:///:memory:', migration_dir='testmigrations') >>> tool.install() # create a database table to track schema changes >>> tool.find_migrations() ['1_foobar', '2_foobar_data', '10_foobar_delete'] >>> tool.run_migrations() >>> tool.find_migrations() # check that all migrations have been applied []
可以找到迁移脚本示例 in the sqlturk’ sourcesqlturk使用sqlalchemy语法指定数据库连接字符串,有关详细信息,请参见其documentation。