CakePHP 3.7。*迁移:跳过或更改schema.lock文件生成路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CakePHP 3.7。*迁移:跳过或更改schema.lock文件生成路径相关的知识,希望对你有一定的参考价值。
来自文档:
为了使diff功能正常工作,每次迁移,回滚或烘焙快照时都会生成.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进行应用程序部署。
@ platform config文件我们有这样的行:
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文件?
答案
它不是试图创建.lock
文件,因为你告诉它在你的命令中跳过那部分。
相反,它正在尝试创建seeds directory,因为它无法找到它。如果文档是正确的,添加config/Seeds
目录应该允许它继续经过该步骤并成功或阐明另一个问题。
以上是关于CakePHP 3.7。*迁移:跳过或更改schema.lock文件生成路径的主要内容,如果未能解决你的问题,请参考以下文章