如何处理使用相同数据库的两个独立 Laravel 项目的迁移?

2024-03-13

我们的设置是这样的:

  1. 我们有 API 可以为 iOS 和 Android 应用程序提供支持
  2. 我们有一个管理 API,可以为管理 Web 应用程序提供支持

我正在开发管理员,我的同事正在开发应用程序 API。

它们都使用相同的数据库和大部分相同的表。将它们合并到单个项目中并不是一种选择,因为我们将部署到 Elastic Beanstalk,并且管理员不需要扩展,因为它将由少数人使用。

我们遇到的问题是处理迁移,我们得出以下结论:

  • 我们不能在我们的项目中都有自己的迁移,因为版本不会相加
  • 如果我们仅在其中一个项目上保留迁移(我们都可以访问这两个项目),则在不重新部署另一个项目的情况下,无法重新部署没有迁移的项目
  • 如果我们创建一个仅进行迁移的第三个项目,那么我们正在托管一个基本上不执行任何操作的应用程序

虽然我能想到hacky解决此问题的方法,我们正在寻找最佳实践方法。


我建议选择创建仅具有迁移的第三个项目。这样,您可以将所有迁移保留在一个位置并避免不一致问题,并且可以将迁移与任一应用程序的部署分离。该应用程序不“做”任何事情这一事实应该不重要;您不需要部署额外的应用程序,只需从部署服务器运行迁移即可。实际上,您不必仅仅为了迁移而创建整个 Laravel 项目;在 Laravel 之外使用 Eloquent 相当简单。本文 http://thoughts.silentworks.co.uk/using-schema-builder-with-cli-migrations/给出了使用 Eloquent 查询构建器在 Laravel 外部运行迁移的示例。您还可以使用轻量级迁移工具,例如Phinx https://phinx.org/,它提供了与 Laravel 内置迁移类似的功能集,但依赖性最小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何处理使用相同数据库的两个独立 Laravel 项目的迁移? 的相关文章

随机推荐