我需要设置演示网站与演示数据,包括每小时重置数据的公共演示网站。由于我们的数据使用相对于“现在”(例如archived_timestamp)的时间戳,所以我们不能仅仅用固定的时间戳恢复sql。
我的想法是为该任务使用Yii2迁移,使用PHP代码生成时间戳并插入演示数据。
如何做到这一点?
发布于 2015-12-02 17:36:30
但就我的经验而言,正确和经常性地创建/填充和删除/更新/删除在某些情况下可能有用--使用控制器,特别是如果这些活动是通过网页或URL启动的,而不需要启动控制台命令,使用带有适当操作的控制器甚至可以上下操作,并且可能是为了适当地响应操作的结果。
发布于 2016-09-18 16:29:18
是的,您可以使用控制器映射分配命令名,配置迁移路径&表,并在不干扰原始迁移命令的情况下使用它。
在控制台应用程序的配置中,添加一个带有演示的控制器映射
'controllerMap' => [
'demo-setup' => [
'class' => 'yii\console\controllers\MigrateController',
'migrationPath' => '@common/migrations/demo',
'migrationTable' => '{{%demo_setup_migration}}'
],cd到您的控制台应用程序目录并使用演示-安装命令,就像使用迁移命令一样。
./yii演示-安装/创建模式./yii演示-安装/创建示例-数据
./yii演示-安装
您可能希望设置一个cron作业来重新创建db并应用迁移或重新应用迁移到现有db以覆盖演示数据。
发布于 2017-02-09 10:44:19
是Yii2迁移的正确工具吗?,只要您将演示迁移存储在一个独立的位置,而不是您的主要迁移。老实说,当我启动一个新的Yii2项目时,总是从为演示数据创建迁移开始(我还创建了第一个迁移用户)。我通常使用faker和我自己的一些类来生成演示数据。
是否建议将迁移文件存储在单独的子目录中,而我们的演示设置不会干扰普通的“迁移/向上”和“迁移/向下”进程?是的,您应该!
这种迁移是否绑定到文件命名方案,或者可以是例如,从官方的Yii2文档中获取的关于命名迁移的演示-数据-setup.php?:
注意:由于name参数将用作生成的迁移类名的一部分,因此它只应该包含字母、数字和/或下划线字符。
Ps.:不要过度工程你的项目
https://stackoverflow.com/questions/34048467
复制相似问题