我有一个web应用程序,是为几个客户的机器安装的。在更新应用程序时,我需要将表模式的最新版本传播到生产服务器。
有很多迁移工具,但它们中的大多数都需要大量的工作,或者比我需要的更复杂。我需要一个像下面描述的那样简单的解决方案来简化升级阶段。
我需要一个工具来接收开发和生产机器的表模式(由mysqldump --no-create-info
生成),并生成在生产服务器上运行所需的alter table查询。
+------------------------+
| +--------------+
|Development Machine | |
|create tables statements| +--------v-------+
+------------------------+ | | +----------------+
| Automation Tool+----->Alter Statements|
| | +----------------+
+---------^------+
+------------------------+ |
|Production Machine | |
|create table statements +---------------+
+------------------------+
发布于 2015-01-10 10:32:30
我的方法是使用您首选的mysql访问方法(命令行、phpmyadmin、SequelPro等)手动将更新后的列添加到活动用户表中。然后用服务器端语言编写一个导入脚本,将开发用户表中任何必要的数据移植到活动表中。
也请确保备份您的实时数据库之前,你是这项工作。
如果您希望将来更加自动化,我建议使用Liquibase (http://www.liquibase.org/)之类的工具对数据库进行版本控制,并使用Jenkins CI (http://jenkins-ci.org/)之类的工具来处理迁移。
发布于 2015-02-14 12:37:14
您可以使用mysql工作台来实现这一点。您将模式提供给它,并提供实时数据库的凭据,它将比较并生成alter语句。
您可以转到Database --> Synchronize With Any Source,然后UI就会自动生成alter语句。
转到此链接以获得feel Database Synchronization,并找到与任何来源同步。
我们有一个项目,其中我们基于Excel工作表生成SQL (无论何时发生变化),并始终将新的SQL提供给mysql工作台,以便通过与productions数据库进行比较来生成alter语句。
发布于 2015-03-31 12:34:57
我试过Database Comparer v 6.2 Standalone Utility,它太棒了。但是,检测列重命名操作并简单地删除并创建一个重命名的列还不够聪明。所需程序应要求用户在重命名或删除/创建操作之间进行选择。
https://stackoverflow.com/questions/27875004
复制