摘自文档:
为了使差异功能起作用,每次您迁移,回滚或烘焙快照时都会生成一个.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文件?
答案 0 :(得分:1)
它不是试图创建.lock
文件,因为您已经告诉它跳过了命令中的那一部分。
相反,它试图创建seeds directory,因为它无法找到它。如果文档正确,则添加一个config/Seeds
目录应该允许它继续执行该步骤,并成功执行或说明另一个问题。