如何清理使用Phoenix/Ecto创建的PostgreSQL数据库

Pau*_*iro 15 postgresql ecto phoenix-framework

我开始玩Ecto试图理解它.正如预期的那样,我搞砸了(使用用户模型),我在运行迁移时遇到错误:

(Postgrex.Error) ERROR (duplicate_table): relation "users" already exists
Run Code Online (Sandbox Code Playgroud)

现在,我想使用shell/PgAdmin III清理数据库,以便我可以修复我的模型并再次运行迁移.我已经设置了PgAdmin,但我无法看到任何"用户"表...这样做的最佳方式是什么(使用Ecto,PostgreSQL shell还是PgAdmin)?

sch*_*ary 20

使用ecto,您可以在项目中获得一些新的混合任务来处理数据库.他们可能会帮助你:

  • mix ecto.create - 创建存储库用作后端的数据库
  • mix ecto.migrate - 运行存储库的挂起迁移
  • mix ecto.drop - 删除数据库

还有一些新的任务,但这三个将解决您的问题.尝试mix --help其他新任务.在您的情况下:首先运行mix ecto.drop以删除数据库,mix ecto.create再次重新创建它,最后mix ecto.migrate迁移表,然后重新开始.

我已经设置了一些键盘快捷键来更快地输入这些命令:

  • mec 是别名 mix ecto.create
  • mem 是别名 mix ecto.migrate
  • med 是别名 mix ecto.drop