【发布时间】:2017-03-31 21:57:28
【问题描述】:
我想使用自定义 SQL 代码生成新的 Ecto 迁移,而不是使用提供的帮助程序。当前的mix 生成器任务仅处理模型。
如何在迁移中编写原始 SQL 代码?
【问题讨论】:
标签: sql elixir phoenix-framework ecto
我想使用自定义 SQL 代码生成新的 Ecto 迁移,而不是使用提供的帮助程序。当前的mix 生成器任务仅处理模型。
如何在迁移中编写原始 SQL 代码?
【问题讨论】:
标签: sql elixir phoenix-framework ecto
首先使用提供的 Mix Task 创建一个新的迁移,然后随意调用它:
$ 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
【讨论】: