我想在每次执行syncdb时在postgres表中运行数据库注释(在列和表上)。为此,我在每个Django应用程序的SQL文件中编写了注释命令。由于在Django 1.8中不推荐使用syncdb,我将继续使用migrate。所以,我已经设置了post_migrate信号,但我希望它特定于应用程序。
例如,当我运行python manage.py migrate <app_name>
时,它应该为该特定文件运行注释。这是我的代码:
class CreateComments(AppConfig):
name = 'app_name'
def ready(self):
signals.post_migrate.connect(create_comments, sender=self, weak=False)
def create_comments(sender, **kwargs):
full_path = settings.PROJECT_BASE_PATH + 'sql/app_name_comments.sql'
sql_file = open(full_path, 'r')
cursor = connection.cursor()
cursor.execute(sql_file.read())
print 'app_name Comment Applied '
我在2个应用程序中写了这个。因此,当我运行python manage.py migrate app_name1
时,它会为这两个应用程序运行该功能。
我有什么方法可以使这个应用程序特定?如果我不清楚,请提及。