0

从文档:

为了使差异功能起作用,每次迁移、回滚或烘焙快照时都会生成一个 .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 文件?

4

1 回答 1

1

它不会尝试创建.lock文件,因为您已告诉它跳过命令中的该部分。

相反,它正在尝试创建种子目录,因为它无法找到它。如果文档是正确的,添加config/Seeds目录应该允许它继续通过该步骤并成功或阐明另一个问题。

于 2019-02-16T23:48:22.137 回答