我有一个数据库由于其上有一些遗留软件而无法使用多个模式,并且需要与新的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 - 但所有这些都是古老的,并且不要# 39;从Django 1.8开始工作(我正在运行1.11)
Django 1.11有什么解决方案吗?我到处寻找,但现有的插件不起作用,提交给Django本身的每个功能请求都已关闭为wontfix。我尝试将插件更新到1.11,但他们老实说是我的头脑。
具体来说,我想为所有表添加前缀 - 不仅仅是我特定项目中的表 - 包括Django的内置表。所以我想要" DJANGO_AUTH"成为" PREFIX_DJANGO_AUTH"例如。
如果重要,数据库就是Oracle。
答案 0 :(得分:0)
您应该能够使用模型中的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。
答案 1 :(得分:0)
尽管ans来得太晚了,我终于得到了ans:
安装应用
pip install django-db-prefix
将应用程序包含在Settings.py中
INSTALLED_APPS = ['django_db_prefix',]
在Settings.py中添加前缀
DB_PREFIX = "foo_"