使用Rails 3.2和MySQL。我有一个实施问题:
我的应用数据库abc
包含表格products
,users
等。
第三方数据库xyz
,其中包含表格:products
,product_images
等。
xyz
,并替换现有的xyz
。这个数据库是2GB。xyz.products
已导入abc.products
进行列表和搜索。abc.products
的行时,会查找xyz.product_images
列出图像。问题:每次更新xyz
(数据库转储和导入)时,都找不到某些abc.product_images
。我如何实现这一点,以便我的应用程序没有停机时间?每次刷新xyz
时,都需要2-3小时才能完成。
我甚至考虑下载新的xyz
并导入xyz_new
,将xyz.products
导入abc.products
,然后删除xyz
并重命名{{1}到xyz_new
,但这本身需要很长时间,因为MySQL没有重命名功能。
答案 0 :(得分:0)
这可能不是最佳答案,但暂时是我的解决方法:
xyz
是要定期更新的数据库。abc
是要根据xyz
更新的应用数据库。xyz.products
的表格结构复制到xyz.products_new
。将新数据导入其中。xyz.product_images
的表格结构复制到xyz.product_images_new
。将新数据导入其中。xyz.products
,将xyz.products_new
重命名为xyz.products
。xyz.product_images
,将xyz.product_images_new
重命名为xyz.product_images
。xyz.products
与abc.proucts
进行比较。必要时创建/删除/更新。停机时间非常短,因为我正在重命名表而不是数据库。