如何在 Django 迁移中包含 PostgreSQL 函数?

E. *_*rds 3 django postgresql

我想在数据库迁移中包含一些 PostgreSQL 函数。

我能看到的两种方式是:

  1. 编辑迁移文件(由 生成python manage.py makemigrations
  2. 挂钩帖子表创建

第一个似乎更容易,但如果需要重新进行迁移,则很费力。您建议最好的解决方法是什么?

E. *_*rds 5

回答我自己的问题以澄清问题(感谢所有评论):

首先我做了一个空迁移 ( python manage.py makemigrations --empty app_name)

然后,向操作添加函数的 SQL:

migrations.RunSQL(
    ('CREATE OR REPLACE FUNCTION my_function() ...'),
    ('DROP FUNCTION IF EXISTS my_function();')
)
Run Code Online (Sandbox Code Playgroud)

这两行用于迁移和取消迁移 SQL,在此处阅读更多信息:https : //docs.djangoproject.com/en/2.1/ref/migration-operations/#runsql

自定义迁移将在主迁移后自动运行。