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文件生成路径的主要内容,如果未能解决你的问题,请参考以下文章

使用 mysqldump 时跳过或忽略临时表

CakePHP 3.7 - 测试用例文件上传

第二个 cin 被跳过或无法正常工作

如何为 NatTable 中的特定单元格跳过或不应用 cellpainter

CakePHP 3.7 - 测试用例文件上传

如何跳过或忽略标题上方的行?