我有一个不能使用多个模式的数据库,因为它上面有一些遗留软件,它需要与新的Django应用程序共享空间。 Django的内置表名称与一些现有表名冲突,因此我想为所有表名添加前缀。
我找到了各种stackoverflow帖子,如How to rename all django's default auth, permission,groups tables? Django Database Prefix,他们提到了一些插件,如https://github.com/benslavin/django-db-prefix和https://pypi.python.org/pypi/django-table-prefix/0.0.5 - 但所有这些都是古老的,并且不能从Django 1.8开始工作(我正在运行1.11)
Django 1.11有什么解决方案吗?我到处寻找,但现有的插件不起作用,提交给Django本身的每个功能请求都已关闭为wontfix。我尝试将插件更新到1.11,但他们老实说是我的头脑。
具体来说,我想为所有表添加前缀 - 不仅仅是我特定项目中的表 - 包括Django的内置表。所以我希望“DJANGO_AUTH”成为“PREFIX_DJANGO_AUTH”。
如果重要,数据库就是Oracle。
您应该能够使用模型中的Meta类选择所需的表名。
https://docs.djangoproject.com/en/2.0/ref/models/options/#db-table
class MyModel(models.Model)
class Meta:
db_table = 'yourtablename'
否则,默认是将app_name连接到类名以创建teh tablename。