我正在尝试将 SVN 与 Toad for MySQL 一起使用,以使两台开发机器上的两个数据库保持同步。当我在一台机器上修改表时,Toad 会更改相应的脚本并将它们检查得很好。
在另一台机器上,当我在特定表上尝试“更新数据库”或“更新模式”甚至“获取最新”时,我得到一个显示表已更改的窗口,但是当我单击“确定”时,我得到一个空脚本窗口显示-- no changes detected
(并且“确定”按钮被禁用)。当我尝试手动更改表时,Toad 说它与 SVN 不匹配并希望我更新它,但这只是将我带到第一个窗口。而且由于第一个窗口无法成功关闭(只能取消),我什至无法编辑表格。
有没有人有过这个?我究竟做错了什么?
补充:另一个问题:我在其中一台机器上添加了一个新表。当我尝试更新另一个时,我得到MySQL Database Error: Table 'my.table' doesn't exist
.
补充2:好的,看来问题是蟾蜍有问题。这是我发现的其他东西:即使我只使用一台机器来修改数据库,它仍然对我说我必须更新表或 SVN,因为它们是不同的(但是它们不能不同,我唯一的改变已完成是从这台机器上完成的,他们已签入)。如果我尝试从 SVN 更新,我会得到相同的死胡同。如果我更新到 SVN,那么使用 TortoiseSVN 检查变更集会发现一个重大变化:
Before: ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
After: ) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;
这应该是不言自明的。它没有解释“表不存在”,但我怀疑这只是另一个错误。好消息 - Toad 的人已经知道它并表示他们将在下一个版本中修复它。