mysql - 如何在计算机之间更新mysql表

标签 mysql database-design synchronize

我正在做一个小组项目,我们都有一个在本地计算机上运行的 mysql 数据库。该表主要包含用于图像处理的文件名和统计信息。我们都会运行一些处理,用结果更新本地数据库。

我想知道一旦有人更改了他们的数据库,更新其他人的数据库的最佳方法是什么。

我的想法是在每次处理运行后执行mysqldump,并让 git (我们虔诚地使用它)跟踪该文件。我已经为数据库编写了一堆Python utils,当我们检测到数据库落后时,将这个转储读入数据库就足够简单了。不过,我真的不想这样做,以免每次提交时都会出现不必要的 10-50Mb 文件,从而堵塞我们的 git 存储库。

有谁知道更好的方法吗?

*我还要指出,我们是航空航天专业的学生。我有一些数据库经验,但这只是出于需要。我们很忙,我不想成为一名 IT 网络专家。只是想让他们放手,因为他们是数据库菜鸟,每当我告诉他们对数据库做任何事情时,他们都会表现出恐惧的表情。到目前为止,我已经帮他们放手了。

最佳答案

您可能需要考虑遵循 Rails 风格的数据库迁移概念,即在开发时提供前滚和回滚 SQL 语句作为补丁,允许您将数据库滚动到任何特定的修订状态是必需的。

当然,这通常仅用于处理架构更改(即您不必担心修改可能动态填充到表中的数据。)。对于内容基本静态的配置表或类似表,您当然也可以添加迁移。

Google 搜索“rails migrations for python”出现了许多结果,其中包括以下工具:

http://pypi.python.org/pypi/simple-db-migrate

关于mysql - 如何在计算机之间更新mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384929/

相关文章:

django - 为此用例设计 Django 模型的 "right way"是什么?

cuda - 将设备内存访问与主机线程同步

mysql - 设计考勤数据库: Is it good practice to use employees as fields?

mysql - 根据列值和非重复列选择行

php - 我无法使用 SQL 在不同的行中显示我的结果

sql - 在两个可为空的 FK 之间添加 SQL XOR 约束

mysql - 使用 MariaDB 的 Ruby convert_tz 返回 nil

design-patterns - 是否有合并重复数据库记录的设计模式?

sockets - 使用 phpmyadmin 同步两个数据库 - 此操作的 'socket' 是什么?

c++ - 实现线程安全数组