我有一个迁移步骤,我需要假装数据库被引导后,它看起来像这样:
- name: "Setup database"
mysql_db: name=my_database state=present target=/tmp/database.sql
args:
login_user: root
login_password: ""
- name: Import the database
shell: ../../vendor/bin/propel up --fake
args:
chdir: /var/www/project/application/propel
Run Code Online (Sandbox Code Playgroud)
在第一次虚假迁移数据库之后,显然不是一个好主意.我怎么能让它只发生一次?
Pas*_*i H 17
因此,如果我理解正确,则只有在安装数据库添加了数据库时才导入数据库.在Setup数据库中注册变量并在导入数据库时使用条件将执行此操作:when
- name: "Setup database"
mysql_db: name=my_database state=present target=/tmp/database.sql
args:
login_user: root
login_password: ""
register: db_created
- name: Import the database
shell: ../../vendor/bin/propel up --fake
args:
chdir: /var/www/project/application/propel
when: db_created.changed
Run Code Online (Sandbox Code Playgroud)
我喜欢这两个答案并使用它们来执行以下操作,这对我来说是一个更清晰的解决方案。遗憾的是任务重复但它按您的预期工作,只有在必须创建数据库时才会进行导入。
- name: Create DB (if necessary)
mysql_db:
name=my_database
state=present
register: db_created
- name: Import DB (if it was created)
mysql_db:
name=my_database
state=import
target=/tmp/database.sql
when: db_created.changed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5057 次 |
| 最近记录: |