我知道StackOverflow已经存在一些问题,但它们往往已经过时,并且没有充分解决迁移在以下场景中应该如何工作的问题,这应该是相当常见的:
我的问题是:对我们的模型进行分析的最佳方法是什么,这两个应用程序都不必复制模型代码?
我们关注以下内容:
感谢。
答案 0 :(得分:1)
我不知道这是不是这种方法,并且很想看到其他想法,但我们在与我们相匹配的产品中做了什么:
对于共享模型,数据库迁移应该在哪里生效?
我们将所有迁移都保留在管理系统下。你不需要他们存在两次,所以他们去的地方。
如果每个应用程序都希望在共享模型之上添加其他模型,该怎么办?这些迁移在哪里生效?
我们分享所有型号。它可能只与目前的一个应用程序相关,比如说favourited_items
概念可能只对最终用户有用。但是稍后管理员可能想知道哪些项目最常受欢迎。
其次,如果您想通过控制台调查任何内容,如果您不需要访问单独的应用程序,那么它非常有用,因为它们不会为每个表都有模型。
每个应用程序不同的共享模型中的功能检测到rails环境变量,我们已将其扩展为包含更多上下文。例如:if Rails.env == 'admin_production'
将现有迁移迁移到建议的共享迁移方案的最佳方法是什么?
同样,迁移应该只存在一次,共享数据库知道哪些已经运行,所以除非您重命名迁移,否则只需选择一个位置并移动文件。