Symfony 3 - 生产中的数据库静态数据。夹具?移民 ?还有别的吗?
Symfony 3 - Database static data in production. Fixture ? Migration ? Something else?
据我所知,夹具是"something used to consistently test some item, device, or piece of software"。它应该只在开发和测试环境中使用。
我的背景:
我有一个网络应用程序,建议销售 5 种特定产品。
edit/remove/add 产品没有后台,但有修改产品价格和描述的后台,这就是为什么我需要数据库中的 5 种产品。
要初始化应用程序,我想将我的 5 个产品插入数据库(通过代码)。
我可以使用固定装置将产品插入我的数据库,但我认为这不是固定装置的工作,它只能在 "dev" 或 "test" 环境中使用。
"doctrine:schema:update" 似乎也不是正确的解决方案,因为它只更新架构(我的数据库的结构),与数据无关。
有没有办法用 Symfony3 在我的数据库中插入 "static data"?数据迁移系统 ?有正确的方法吗?使用 doctrine-migrations-bundle ?
Fixtures是插入静态数据进行测试的方式。但是是的,它应该在开发环境中使用,因为它在插入之前完全截断了数据库中的所有数据。
迁移用于模式版本控制。所以它不是使用它的正确地方。
所以,如果您觉得合适,请坚持使用固定装置。
好吧,你必须把一些放在夹具上,因为你在开发/测试环境中仍然需要这些数据。
对于初始化,您必须将它放在第一个迁移脚本中(据我了解,它是您的应用程序运行所必需的)
或者您放弃编写 sql 脚本的想法,该脚本将在您的项目生命周期中执行一次 并创建一个 initial-prod-data.dump.sql
而不是导入时你在 prod 中初始化你的项目。
PS:如果您使用迁移,请不要使用实体,使用普通 sql 以避免任何涉及模型进化的回归。
据我所知,夹具是"something used to consistently test some item, device, or piece of software"。它应该只在开发和测试环境中使用。
我的背景: 我有一个网络应用程序,建议销售 5 种特定产品。 edit/remove/add 产品没有后台,但有修改产品价格和描述的后台,这就是为什么我需要数据库中的 5 种产品。 要初始化应用程序,我想将我的 5 个产品插入数据库(通过代码)。
我可以使用固定装置将产品插入我的数据库,但我认为这不是固定装置的工作,它只能在 "dev" 或 "test" 环境中使用。
"doctrine:schema:update" 似乎也不是正确的解决方案,因为它只更新架构(我的数据库的结构),与数据无关。
有没有办法用 Symfony3 在我的数据库中插入 "static data"?数据迁移系统 ?有正确的方法吗?使用 doctrine-migrations-bundle ?
Fixtures是插入静态数据进行测试的方式。但是是的,它应该在开发环境中使用,因为它在插入之前完全截断了数据库中的所有数据。 迁移用于模式版本控制。所以它不是使用它的正确地方。 所以,如果您觉得合适,请坚持使用固定装置。
好吧,你必须把一些放在夹具上,因为你在开发/测试环境中仍然需要这些数据。
对于初始化,您必须将它放在第一个迁移脚本中(据我了解,它是您的应用程序运行所必需的)
或者您放弃编写 sql 脚本的想法,该脚本将在您的项目生命周期中执行一次 并创建一个 initial-prod-data.dump.sql
而不是导入时你在 prod 中初始化你的项目。
PS:如果您使用迁移,请不要使用实体,使用普通 sql 以避免任何涉及模型进化的回归。