【发布时间】:2017-01-25 20:39:27
【问题描述】:
我的网络应用程序需要在安装期间执行一些初始数据库脚本。这些只是一些需要运行的 CREATE TABLE 脚本。我正在处理它。
我一直在尝试使用 Docker 1.12 的 swarm 模式来创建我的 Web 应用程序的多个容器副本,这些副本使用共享数据库。 (Oracle 12c 或 MySQL 实例)。
问题是当我启动容器的多个副本时,它们都尝试同时运行 SQL 脚本并失败。我尝试使用 Flyway 处理数据库迁移,但无济于事。
这种情况应该怎么处理?
【问题讨论】:
-
您的应用肯定要先检查这些表是否存在,也就是说您的数据库迁移只会执行尚未完成的操作,否则您的应用将无用...
-
@OlegSklyar 你想把它转换成诸如
create table IF NOT EXISTS thing ( col1 int not null, col2 int not null, age int not null );这样给出警告/错误1050 link 的答案吗? -
@Drew 谢谢,完成。
标签: mysql database oracle docker