在Phoenix中使用自定义SQL代码生成迁移

时间:2017-03-30 07:34:12

标签: sql elixir phoenix-framework ecto

我想使用自定义SQL代码生成新的Ecto迁移,而不是使用提供的帮助程序。当前mix生成器任务仅处理模型。

如何在迁移中编写原始SQL代码?

1 个答案:

答案 0 :(得分:6)

首先使用提供的Mix任务创建一个新的迁移,并根据需要调用它:

$ mix ecto.gen.migration my_custom_migration

现在编辑priv/repo/migrations/中新生成的迁移模块,并使用changeup方法替换空的down方法。

然后,您可以使用原始SQL代码调用execute/1

defmodule MyApp.Repo.Migrations.MyCustomMigration do
  use Ecto.Migration

  def up do
    # Your custom SQL code
    execute "CREATE TABLE some_table ..."
  end

  def down do
    execute "DROP TABLE some_table;"
  end
end

来源:Execute Raw SQL In An Ecto Migration