2015-12-02 40 views
2

我需要使用演示數據快速設置演示網站,包括每小時重置公共演示網站的數據。由於我們的數據使用相對於「now」(例如archived_timestamp)的時間戳,因此我們不能只使用固定的時間戳恢復sql轉儲。yIi2通過遷移生成演示數據

我的想法是將Yii2遷移用於該任務,並使用PHP代碼生成時間戳並插入演示數據。

如何實現這一目標?

  • Yii2遷移是否是正確的工具?
  • 建議將遷移文件存儲在單獨的子目錄中,以便我們的演示設置不會干擾普通的「遷移/向上」和「遷移/遷移」過程?
  • 此遷移綁定到文件命名方案還是可以這樣做? demo-data-setup.php?

回答

1
  • 是Yii2遷移爲正確的工具? 可能是,如果你需要的SQL命令和指令的正確順序爲創建和填充一組特定的表和數據,你可以使用funtcion起來創造一個popluation和功能下降的下降刪除(或刪除),你需要什麼。
  • 我建議將遷​​移文件存儲在一個單獨的子目錄中,我們的演示設置不會干擾普通的「遷移/向上」和「遷移/關閉」過程?當然

  • 這是遷移綁定到一個文件命名方案,或這可以是例如demo-data-setup.php?在yii2(也可在其他遷移工具)遷移文件都涉及到一個合適的模板,tipically datetime_migration_name.php

但我的經驗,適當的和經常性創建/填充和刪除/更新/刪除可能會在某些情況下非常有用使用一個控制器,特別是如果這些活動是通過網頁或網址推出無需啓動控制檯命令使用的相應操作的控制器甚至可以上下,可能是爲了一個適當的迴應行動的結果

0

是Yii2遷移正確的工具是什麼?

否,遷移是用於數據庫的結構的變化(添加的列,設定指數,..)比填充表與數據的更多。在你的情況下,我會編寫一個組件,它具有需要恢復的每個模型的刪除/創建功能。然後,您可以使用cron任務調用您的組件。

1

是的,您可以使用控制器圖可以指定命令名稱,配置的遷移路徑&表,並使用它,而與原來的遷移命令干擾。

在控制檯應用程序的配置,

'controllerMap' => [ 
    'demo-setup' => [ 
     'class' => 'yii\console\controllers\MigrateController', 
     'migrationPath' => '@common/migrations/demo', 
     'migrationTable' => '{{%demo_setup_migration}}' 
    ], 

CD添加控制器地圖演示,您的控制檯應用程序目錄,並使用演示-setup命令,你會使用遷移命令。

./yii demo-setup/create schema 。/警予演示設置/創建抽樣數據

./yii演示設置

你不妨建立一個cron作業來重新創建數據庫和應用遷移或重新申請遷移現有的數據庫覆蓋演示數據。

1

Yii2遷移是否是正確的工具? 只要您將演示遷移存儲在與主遷移不同的位置即可。說實話,當我開始一個新的Yii2項目時,我總是在開始爲演示數據創建遷移(我也創建了第一個遷移用戶)。我通常使用faker和我自己的一些類來生成演示數據。

是否建議將遷移文件存儲在獨立的子目錄中,我們的演示設置不會干擾普通的「遷移/上移」和「遷移/遷移」過程?是的,你應該!

此遷移綁定到文件命名方案還是可以例如演示數據setup.php?從有關命名遷移官方Yii2文檔:

注:由於名稱參數將被作爲產生的移民類名稱的一部分,它應該只包含字母,數字和/或下劃線字符。

詩:不overengineer你的項目