【发布时间】:2017-04-11 01:16:51
【问题描述】:
在 Phoenix 应用程序中使用种子文件时,如果种子多次运行,是否可以重新启动表的身份?
例如,我目前正在使用以下种子:
PhoenixApp.Repo.delete_all PhoenixApp.Role
PhoenixApp.Repo.insert!(%PhoenixApp.Role{role: "admin"})
PhoenixApp.Repo.insert!(%PhoenixApp.Role{role: "non-admin"})
第一行清除表(这样如果种子运行多次,记录就不会堆积),随后的行创建种子记录。正如您通常所期望的那样,运行此代码一次将使用自动递增的主键“1”和“2”创建两条记录。但是,如果我以后想在表格中添加另一个条目,例如
PhoenixApp.Repo.insert!(%PhoenixApp.Role{role: "superuser"})
行的 ID 现在将是“3”、“4”和“5”,因为没有重新启动标识。
Ecto 是否也有重新启动表标识的命令?我意识到我可以通过 IEx 向我的表中添加其他记录,但如果可能的话,我更愿意重新启动身份。
【问题讨论】: