我的应用程序需要在某些表中存在一些行才能在部署时正常运行。但是,我不确定是否编写了DoctrineFixturesBundle以在生产服务器上运行。它在我的开发机器上运行得非常好,但它在生产中使用是否足够安全?
答案 0 :(得分:5)
自2011年底以来,我已将捆绑包与doctrine/doctrine-migrations-bundle
一起集成到多个symfony2应用程序的(连续)部署过程中。
我从未遇到过fixtures-bundle的任何问题。
我不得不承认,迁移捆绑偶尔给我带来了一些麻烦 - 但同时主观感觉非常成熟和稳定。
doctrine/data-fixtures
于2010年中期推出。
doctrine/doctrine-fixtures-bundle
(与symfony2项目集成的软件包)自2011年中期开始存在。
根据SensioLabs的survey,它是最常用的20个捆绑之一。
capifony - symfony2应用程序广泛使用的部署工具 - builtin支持使用bundle加载fixture。
doctrine/data-fixtures
有一个很好的test coverage。
捆绑包本身目前不提供任何测试......但它唯一提供的是一个非常简单的命令。看看code。
我认为捆绑对于生产部署来说绝对是安全的,因为我现在这样做了3年多。
通过作曲家获得> 200万installs doctrine/doctrine-fixtures-bundle
...我绝对不是唯一一个这样思考的人。
答案 1 :(得分:1)
我通常使用if来加载prod环境中的新(静态)数据以及学说迁移。
例如,如果在现有项目中,我们开发了一个用于管理技巧的新实体(viwh或没有管理CRUD部分):
我们发布了迁移任务
我们使用以下内容加载一组初始数据:
php app / console doctrine:fixtures:load --append --env = prod --fixtures = src / AcmeDemoBundle / DataFixtures / ORM / ProdFixtures / NewTipology
选项--append
允许在没有全部删除的情况下将数据附加到现有数据库,--fixtures
可以将文件夹作为输入传递以加载所有预设数据。
fixture类可以访问扩展ContainerAwareInterface的现有数据(或其他容器服务)。
这是我的经历。
希望得到这个帮助。