Если вы войдете в свою базу данных и выполните select * from migrations
, это должно помочь вам увидеть, на что ссылается команда artisan migrate
, чтобы решить, запускать ли миграцию.
Я просто подумаю с тобой:
Если вы создадите миграцию в проекте A и запустите ее, она обновит вашу базу данных, а таблица миграции в вашей базе данных запишет, что миграция была выполнена.
Проект B не будет иметь эту миграцию в своей собственной папке базы данных/миграции в приложении. Поэтому, если вы сделаете artisan migrate --pretend
, реальность такова, что в таблице миграции будут найдены записи, о которых нет записи в виде файлов миграции в собственной папке базы данных/миграции.
Я на самом деле не уверен, что он там будет делать.
Но иметь одну базу данных, используемую несколькими приложениями, определенно разумно, что вы пытаетесь сделать здесь. Это нормальная практика.
Почему бы просто не решить, какое приложение, A или B, вы собираетесь возложить на себя ответственность за проведение всех миграций, и знать, что вы когда-либо будете выполнять только artisan make:migration
и artisan migrate
, скажем, в проекте A, и просто рассматривать проект B как второго клиента базы данных, которой на самом деле «владеет» проект A?
Итак, учитывая вышесказанное, ответ на ваш вопрос, я думаю, нет. Вам не обязательно использовать систему миграции в приложении laravel. С таким же успехом вы можете подключиться к базе данных и предположить, что все таблицы, которые нужны вашему коду, уже там, что и будет делать ваш проект B.
(Но может иметь смысл, чтобы ваша сторона администратора была владельцем миграции базы данных (которую вы на самом деле назвали проектом B выше)).
Также очевидно, что при использовании красноречия обоим проектам потребуются соответствующие красноречивые модели. По крайней мере, вам придется продублировать этот код.
person
mwal
schedule
05.03.2018