我目前在PHP项目中使用SVN.我想我也应该让我的数据库处于版本控制之下,但最好的方法是什么?我只是在SVN中的项目中创建一个db文件夹,将SQL更改粘贴到一个名为from_1.0_to_2.0的文件中.sql和提交?

推荐答案

无论何时对数据库进行更改,都应该在迁移中保存这些更改,以便以后在更新代码的同时在其他服务器上运行.但你的 idea 基本上是对的.你可以编写一些工具,使其更加自动化;例如,对每个文件进行版本设置,然后在数据库中创建一个类似于migration_version的表,该表将包含数据库的当前版本.然后,您可以创建一个迁移脚本,该脚本将运行使数据库更新所需的所有migrations.

请注意,如果您想要双向的db版本控制(这样您也可以恢复到以前的db版本),那么您也需要 for each 版本编写所需的查询.

还有一些工具可以帮助您编写迁移,例如MySQLdiff

Mysql相关问答推荐

正在获取MySQL死锁,因为这个查询需要很长时间.

警告:MYSQL_OPT_RECONNECT 已弃用

完全匹配 IN 子句中的所有值

在 MySQL 中跨日期和位置计算和排序实体的共现

为什么order by子句可以利用索引?

有人可以帮我用 R 编程解决这个问题吗?

在表中找到最大值,然后分别显示SQL组和每个SQL组中的最大值计数

有没有更好的方法在无限滚动的网页上呈现获取的提要数据?

MySQL按连续值和计数分组

MySQL:将日期时间插入其他日期时间字段

在 Android 上运行 AMP (apache mysql php)

MySQL - 使一对值唯一

用于国际和多语言目的的数据库建模

MySQL:在 Select 语句中自动增加临时列

仅在 MYSQL DATEDIFF 中显示小时数

我的 PDO 声明不起作用

MySQL中的行值增加和减少1

将sql查询的结果写入mysql中的文件

MySQL与空值比较

mysql错误'TYPE = MyISAM'