使用 DoctrineFixturesBundle 为生产数据库做种子是否安全?
Is it safe to seed production databases with DoctrineFixturesBundle?
我的应用程序需要一些行出现在一些表中才能在部署时正常运行。但是,我不确定 DoctrineFixturesBundle 在生产服务器上是否被写入 运行。它在我的开发机器上工作得很好,但在生产环境中使用它是否足够安全?
个人经历
自 2011 年底以来,我已将捆绑包与 doctrine/doctrine-migrations-bundle
一起集成到几个 symfony2 应用程序的(连续)部署过程中。
我从来没有 运行 遇到任何关于 fixtures-bundle 的问题。
我不得不承认,迁移包偶尔会让我有些头疼 - 但它同时在主观上感觉非常成熟和稳定。
一般信息
doctrine/data-fixtures
于 2010 年中期推出。[=23=]
doctrine/doctrine-fixtures-bundle
(与 symfony2 项目集成的包)自 2011 年年中以来就存在。
根据 SensioLabs 的 survey,它是 最常用的 20 个软件包之一。
capifony - the widely used deployment tool for symfony2 applications - has builtin 支持使用捆绑包加载固定装置。
测试覆盖率
doctrine/data-fixtures
有个不错的test coverage.
捆绑包本身目前不提供任何测试...但它唯一提供的是一个非常简单的命令。看看 code.
结论
我想说这个包对于生产部署来说绝对是安全的,因为我现在已经这样做了 3 年多了。
超过 200 万 installs 的 doctrine/doctrine-fixtures-bundle
通过作曲家...我绝对不是唯一一个这样想的人。
我通常使用 if 在生产环境中加载新的(静态)数据,同时结合原则迁移。
例如,如果在现有项目上我们开发一个新实体来管理拓扑(viwh 或没有管理 CRUD 部分):
我们发布迁移任务
我们加载一组初始数据:
php app/console doctrine:fixtures:load --append --env=prod --fixtures=src/AcmeDemoBundle/DataFixtures/ORM/ProdFixtures/NewTipology
选项--append
允许在不全部删除的情况下将数据追加到现有数据库中,--fixtures
可以传递一个文件夹作为输入以加载所有预设数据。
fixture class 可以访问扩展 ContainerAwareInterface 的现有数据(或其他容器服务)。
这是我的经验。
希望对您有所帮助。
我的应用程序需要一些行出现在一些表中才能在部署时正常运行。但是,我不确定 DoctrineFixturesBundle 在生产服务器上是否被写入 运行。它在我的开发机器上工作得很好,但在生产环境中使用它是否足够安全?
个人经历
自 2011 年底以来,我已将捆绑包与 doctrine/doctrine-migrations-bundle
一起集成到几个 symfony2 应用程序的(连续)部署过程中。
我从来没有 运行 遇到任何关于 fixtures-bundle 的问题。
我不得不承认,迁移包偶尔会让我有些头疼 - 但它同时在主观上感觉非常成熟和稳定。
一般信息
doctrine/data-fixtures
于 2010 年中期推出。[=23=]
doctrine/doctrine-fixtures-bundle
(与 symfony2 项目集成的包)自 2011 年年中以来就存在。
根据 SensioLabs 的 survey,它是 最常用的 20 个软件包之一。
capifony - the widely used deployment tool for symfony2 applications - has builtin 支持使用捆绑包加载固定装置。
测试覆盖率
doctrine/data-fixtures
有个不错的test coverage.
捆绑包本身目前不提供任何测试...但它唯一提供的是一个非常简单的命令。看看 code.
结论
我想说这个包对于生产部署来说绝对是安全的,因为我现在已经这样做了 3 年多了。
超过 200 万 installs 的 doctrine/doctrine-fixtures-bundle
通过作曲家...我绝对不是唯一一个这样想的人。
我通常使用 if 在生产环境中加载新的(静态)数据,同时结合原则迁移。
例如,如果在现有项目上我们开发一个新实体来管理拓扑(viwh 或没有管理 CRUD 部分):
我们发布迁移任务
我们加载一组初始数据:
php app/console doctrine:fixtures:load --append --env=prod --fixtures=src/AcmeDemoBundle/DataFixtures/ORM/ProdFixtures/NewTipology
选项--append
允许在不全部删除的情况下将数据追加到现有数据库中,--fixtures
可以传递一个文件夹作为输入以加载所有预设数据。
fixture class 可以访问扩展 ContainerAwareInterface 的现有数据(或其他容器服务)。
这是我的经验。
希望对您有所帮助。