2016-02-16 81 views
1

是否有可能以遷移所有表格的方式執行php artisan migrate,但在database\migrations下僅保留少數遷移文件?php工匠遷移除了幾個以外的所有表格

情景是,我們的業務需求需要2個DB。所以很少有遷移文件明確提到第二個數據庫。當我爲PHPUnit創建另一個數據庫時,我不需要運行與第二個數據庫關聯的遷移文件。

+0

你是說你已經運行所有遷移一次之後,你會想刪除一些已遷移文件?如果是這樣,爲什麼? – Bogdan

+0

遷移有--database選項,但我還沒有嘗試過如何工作。我認爲你最好的選擇是創建你自己的遷移命令。 –

+0

我們可以提供--database選項來遷移泛型類。但是當文件指定明確的連接時它不起作用。 – Kannan

回答

5

您可以將您不希望自動運行的任何遷移置於子文件夾中。例如:

/database 
    /migrations 
    /db2 
     migration_3 
    migration_1 
    migration_2 

現在,當你運行:

php artisan migrate 

只有在database/migrations目錄遷移將運行(非遞歸,所以db2目錄不會被遍歷),只有migration_1意思將運行migration_2

要運行在db2目錄中的遷移分別可以使用--path選項,如下所示:

php artisan migrate --path=/database/migrations/db2 
2

遷移表的想法是漸進的。

php artisan migrate將遷移migrations文件夾內的所有文件。

您不能更改它的順序或要求某些遷移不運行。

您可以根據需要創建儘可能多的遷移文件,並使用它們刪除或添加列或表格。

如果您需要一點點黑客攻擊,您可以在migrations中創建一個子文件夾並將所有不需要的遷移移動到那裏,然後運行php artisan migrate。這將避免子文件夾及其中的所有遷移。