2016-09-06 4 views
1

Я хочу использовать миграцию Laravel для управления моей базой данных. Но у меня есть , чтобы иметь один файл конфигурации, где я храню схему. Что-то вроде этого:Использование миграции Laravel для управления схемой db из одного файла конфигурации

 { 
      user: { 
        "id":"increments", 
        "name":"string", 
        "timestamps":"timestamps()" 
       } 
     } 

И когда я изменить этот файл еще раз к тексту ниже

 { 
      user: { 
        "id":"increments", 
        "name":"string", 
        "password":"string", 
        "timestamps":"timestamps()" 
       } 
     } 

Я хочу, чтобы иметь возможность выполнить команду и есть база данных будет изменена без потери каких-либо данных или создания дополнительный файл конфигурации.

Могу ли я достичь этого, используя миграцию laravel, или если вы знаете какое-либо другое решение, которое может мне помочь, и я смогу использовать это на laravel без потери инструментов управления базарами laravel, прокомментируйте. Спасибо.

+0

Эти это не то, как работают миграции, к сожалению. Они полностью линейны, и предыдущие миграции никогда не узнают о будущих миграциях. Это также мешает миграционной системе отслеживать изменения (изменяет и т. Д.), Поэтому противоречит парадигме проектирования миграции. – Ohgodwhy

+0

@ Ohgodwhy Да, я знаю. Вот почему я говорю, что мне может понадобиться использовать Phinx или какое-то лучшее решение для того, что я хочу делать. –

ответ

0

php artisan make:migration add_password_to_user (вы уверены, что таблица называется пользователей и не пользователей?)

В вашей новой миграции

public function up() 
{ 
    Schema::table('user', function($table) { 
     $table->string('password'); 
    }); 
} 

Не забудьте откате

public function down() 
{ 
    Schema::table('user', function($table) { 
     $table->dropColumn('password'); 
    }); 
} 

таблица должна быть пользователей, если у вас есть модель Пользователь .. в противном случае убедитесь, что ha ve protected $table = 'user'; на модели.

https://laravel.com/docs/5.3/migrations

В --Настольных и --create вариантов могут также использоваться для указания имени таблицы и является ли миграция будет создание новой таблицы. Эти опции просто предварительно заполнить сгенерированную миграционную стаб файл с указанной в таблице:

PHP ремесленник делает: миграция create_users_table --create = пользователи

PHP ремесленник макияж: миграция add_votes_to_users_table --Настольных = пользователи

+1

Спасибо, но я не думаю, что вы поняли мой вопрос :) –

+0

Это не отвечает на вопрос. –