mysql - Git + 数据库自动生成脚本

标签 mysql database git

我想使用 git 创建一个带有 sql 扩展名的数据库自动生成脚本。我知道这是一个愚蠢的问题,但是当我知道初学者开发人员也在同一个数据库上工作并且我可以让他们自由地使用实时数据库而不会丢失我的重要数据和恢复的机会时,那该多舒服啊直播。

主要担心的是它必须使用 GIT。我的一个命令和脚本创建已准备就绪。

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

最佳答案

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

  1. 使用 migrations 可能有一个适合您的堆栈的库(例如,如果您使用的是 Django 1.6 或更早版本,则为 South;对于 Doctrine,则为 Doctrine Migrations;对于 Rails,则为 Active Record Migrations),或者您可以使用通用工具,例如Liquibase .

    一般来说,在使用数据库迁移库时,您最终会得到许多版本化文件,这些文件会以某种方式修改您的数据库。例如,您可能有一个包含以下内容的迁移目录

    • 0001_create_initial_schema.sql
    • 0002_add_user_model.sql
    • 0003_replace_plaintext_passwords_with_hashed_pa​​sswords.sql

    根据您的库,这些脚本逻辑上可能是在数据库级别或 ORM 级别编写的。一般来说,每个脚本都是可逆的。

    这使得开发人员可以在开发过程中轻松升级他们的数据库架构。

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

    或者,您可以使用类似 Vagrant 的内容轻松创建独立的虚拟机供开发人员使用。 Vagrant可以轻松安装MySQL并创建数据库。

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

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

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

当然,还要定期进行备份。

关于mysql - Git + 数据库自动生成脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290170/

相关文章:

android - 为 Android 应用程序存储 MySQL 数据库的最佳方式是什么

php - 在 php 脚本中不关闭 mysql 连接的缺点是什么?

mysql - 将平均月份值插入到另一个表中,但应防止当前月份平均值传递到表中

node.js - 在不重复的情况下重新调整 NEO4J 中的复杂树状结构

database - 没有表名的 SQLite 列名

mysql - 这部分的SQL语法错误: "int not null auto_increment,"

windows - 如何在 Windows 上使用 GUI 添加或删除 git 标签?

git - 使用git修改master的历史记录而不影响标签的最佳方法是什么?

git - 我如何做 gitk 的 "Write commit to file"的反向操作?

php - 下拉列表中的 if 语句取决于数据库值和用户登录