Миграции 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 для развертывания нашего приложения.
@ Конфигурационный файл платформы у нас есть такие строки:
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]
Есть ли способ создать файлы *.lock в доступном для записи каталоге tmp?
1 ответ
Это не пытается создать .lock
файлы, потому что вы сказали, чтобы пропустить эту часть в вашей команде.
Вместо этого он пытается создать каталог seed, потому что не смог его найти. Если документы верны, добавьте config/Seeds
каталог должен позволить ему продолжить этот шаг и либо преуспеть, либо осветить другую проблему.