数据库同步或迁移工具[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库同步或迁移工具[关闭]相关的知识,希望对你有一定的参考价值。

将生产和开发数据库手动同步真的很痛苦。

是否有任何工具可以让两个数据库保持同步?有点奇怪的Laravel framework's migrations的东西?

我正在使用mysqlphp。我在这里和那里搜索,但无法找到合适的工具。

答案

你一定要看看phinx。这是我使用MySQL和PHP执行的复杂数据库迁移步骤的示例:https://coderwall.com/p/v3qg2q

另一答案

如果我没有错,您需要一个工具来创建数据库版本控制以跟踪架构更改。您可以使用Cygnite Migration命令。它使用简单,让您的工作更轻松。

供你参考-

Migration & Seeding Video Tutorial

Database migration tool

另一答案

查看Schematic,它旨在使用YAML或JSON中的模式文件,并且可以全局安装:

http://andrefigueira.github.io/Schematic/

它旨在与您的VCS一起提交,以便您的数据库版本与项目提交一起存储。

另一答案

目前尚不清楚你想要什么......

  • 从刺激到开发的一种方式?
  • 数据或ddl或两者?

看看这个帖子:How to synchronize development and production database

另一答案

尝试使用rubyrep http://www.rubyrep.org/。它可以在两个数据库之间连续复制。

另一答案

如果您只是希望两个DB完全相同,那么为什么不将MySQL复制与您的生产作为主服务器和开发服务器作为从服务器使用。

MySQL Replication Docs

另一答案

1。使用通配符或特殊的IP地址使远程或生产数据库接受远程连接!通过某种cpanel或配置文件!

2。你可以扩展db artisan命令,如“db:sync”。

3。命令代码(尚未测试):

$db_local = Config::get('database.'.env('DB_CONNECTION', 'db_local')); 
$dump = "tmp.db";
exec("mysqldump --user={$db_local['username']} --password='{$db_local['password']}' --host={$db_local['host']} {$db_local['database']} --ignore-table={$db['database']}.some_table > $dump");
$db_remote = Config::get('database.'.env('DB_CONNECTION', 'db_remote')); 
exec("mysql --user={$db_remote['username']} --password='{$db_remote['password']}' --host={$db_remote['host']} {$db_remote['database']} < $dump");

我没有添加任何功能检查,因为通常它的目的是工作。

例如,你可以使用事件,cron作业,监听器来添加一些自动化......有许多选项,但主要的逻辑部分技巧是:为你的2 db连接定义环境变量名,并在app config数据库中.php,定义你的连接凭据等,最后使用exec,mysqldump和mysql。

祝好运

以上是关于数据库同步或迁移工具[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

同步和异步

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Java同步异步区别

java中同步和异步的区别

Redis数据迁移同步工具(redis-shake)

需求:公司需要做数据迁移同步,以下是几种常见的ETL工具选型对比