CakePHP 3.7。*迁移:跳过或更改schema.lock文件生成路径

时间:2019-02-12 08:57:40

标签: cakephp cakephp-3.7

摘自文档:

  

为了使差异功能起作用,每次您迁移,回滚或烘焙快照时都会生成一个.lock文件,以跟踪任何给定时间点的数据库模式状态。您可以跳过此文件的生成,例如在生产环境中部署时,可以通过对上述命令使用--no-lock选项来

$ bin/cake migrations migrate --no-lock

$ bin/cake migrations rollback --no-lock

$ bin/cake bake migration_snapshot MyMigration --no-lock

我们使用最新的CakePHP 3.7。*和platform.sh进行应用程序部署。

@平台配置文件,我们有以下几行:

deploy: |
    set -e
    bin/cake migrations migrate --no-lock
...

和错误日志:

PHP Warning:  fwrite(): supplied resource is not a valid stream resource in /app/vendor/cakephp/cakephp/src/Console/ConsoleOutput.php on line 253

[2019-02-12 06:21:49.622155] Launching command 'set -e
bin/cake migrations migrate --no-lock
...
Warning Error: mkdir(): Read-only file system in [/app/vendor/cakephp/migrations/src/ConfigurationTrait.php, line 74]

是否可以在可写的tmp目录中生成* .lock文件?

1 个答案:

答案 0 :(得分:1)

它不是试图创建.lock文件,因为您已经告诉它跳过了命令中的那一部分。

相反,它试图创建seeds directory,因为它无法找到它。如果文档正确,则添加一个config/Seeds目录应该允许它继续执行该步骤,并成功执行或说明另一个问题。