我想使用自定义SQL代码生成新的Ecto
迁移,而不是使用提供的帮助程序。当前mix
生成器任务仅处理模型。
如何在迁移中编写原始SQL代码?
答案 0 :(得分:6)
首先使用提供的Mix任务创建一个新的迁移,并根据需要调用它:
$ mix ecto.gen.migration my_custom_migration
现在编辑priv/repo/migrations/
中新生成的迁移模块,并使用change
和up
方法替换空的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