基本的SQL迁移工具有利于配置而不是约定。

Goose的Python项目详细描述


关于

goose是管理和应用sql数据库迁移的工具。

因为我们的鹅使用sqlalchemy来管理它们的迁移表 您可以连接并迁移sqlalchemy支持的任何数据库。

迁移只是简单的sql文件,应用顺序迁移 在yaml文件中通过配置指定。

用法

首先通过安装迁移信息表初始化数据库:

goose -d sqlite:///my.db -m migrations/ init

现在继续迁移:

goose -d sqlite:///my.db -m migrations/ migrate

要了解应用了哪些迁移,您可以执行以下操作:

goose -d sqlite:///my.db -m migrations/ list

安装

pip安装pyyaml pip安装sqlalchemy

并安装特定数据库所需的任何db api驱动程序:

pip安装psycopg2

项目布局

假设您有一个要在如下目录中添加迁移的项目:

MyApp
|-- README
`-- package
    |-- __init__.py
    `-- somecode.py

您可以添加这样的迁移:

MyApp
|-- README
|-- package/
|   |-- __init__.py
|   `-- somecode.py
`-- migrations/
    |-- create_user_tables.sql
    |-- db_skeleton.sql
    |-- index.yaml
    `-- update_users.sql

index.yaml的内容如下:

migrations:
  - db_skeleton.sql
  - create_user_tables.sql
  - update_users.sql

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
每x秒打开一次java数据库连接   java编写Unittest,其中包含2个列表   java将流转换为字符串的时间不应该与大小成正比吗?   对web服务的Java调用未更新布尔属性   了解Websphere共享库与在java项目中定义库的使用情况?   使用@OrderBy时java JPA@ManyToMany排序失败   java Jenkin的构建在npm安装上失败   Mybatis中的java Foreach是硬解析还是软解析?   java访问局部变量与字段的效率?   ssl Java 7,无法生成DH密钥对