Git +数据库自动生成脚本

时间:2014-08-13 15:26:23

标签: mysql database git

我想使用git使用sql扩展创建一个自动生成的数据库脚本。我知道这是一个愚蠢的问题,但是当我知道初学者开发人员也在同一个数据库工作时我会自由地使用他们自己的实时数据库,而不会丢失我的重要数据并有机会恢复住。

主要关注的是必须使用GIT。我的一个命令和脚本创建就绪了。

任何建议都会有所帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

以下是一些有助于在多开发人员,版本控制环境中进行数据库管理的建议。

  1. 使用migrations库。您的堆栈可能有一个(例如South,如果您正在使用Django 1.6或更早版本,{ {3}}用于Doctrine,Doctrine Migrations用于Rails)或者您可以使用像Active Record Migrations这样的通用工具。

    通常,在使用数据库迁移库时,最终会得到许多以某种方式修改数据库的版本化文件。例如,您可能有一个包含

    的迁移目录
    • 0001_create_initial_schema.sql
    • 0002_add_user_model.sql
    • 0003_replace_plaintext_passwords_with_hashed_passwords.sql

    根据您的库,这些脚本可以在逻辑上以数据库级别或ORM级别编写。通常,每个脚本都是可逆的。

    这使开发人员可以随着开发的不断轻松升级他们的数据库模式。

  2. 为每个开发人员设置他们自己的数据库副本。您可以要求他们在本地安装MySQL,并按照"创建数据库,创建用户的方式进行初始化说明,为配置文件添加凭据,运行迁移"。

    或者,您可以使用Liquibase之类的东西轻松创建供开发人员使用的自包含虚拟机。 Vagrant可以轻松安装MySQL并创建数据库。

    最后,您可以在中央服务器上为开发人员创建数据库,例如: app1_johnapp1_cindyapp1_joel

  3. 使用这些指南,开发人员可以根据需要灵活地修改自己的数据库。他们可以通过向代码存储库添加迁移来干净地共享这些修改。任何开发人员都可以随时重置他们的数据库,方法是反向运行所有迁移,或者只是删除数据库。

    使用此模型,大多数开发人员都不需要具有对生产数据库的管理访问权限。仅允许受信任的用户修改生产数据库,并始终使用您在其他地方使用过的经过充分测试的迁移脚本来升级数据库模式。

    当然,请定期备份。