前缀所有表名Django 1.11

时间:2018-03-01 18:20:52

标签: django oracle django-1.11

我有一个数据库由于其上有一些遗留软件而无法使用多个模式,并且需要与新的Django应用程序共享空间。 Django的内置表名称与一些现有表名称冲突,因此我想为所有表名添加前缀。

我找到了各种stackoverflow帖子,例如How to rename all django's default auth, permission,groups tables? Django Database Prefix,他们提到了一些插件,例如https://github.com/benslavin/django-db-prefixhttps://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。

2 个答案:

答案 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:

  1. 安装应用

    pip install django-db-prefix
    
  2. 将应用程序包含在Settings.py中

    INSTALLED_APPS = ['django_db_prefix',]
    
  3. 在Settings.py中添加前缀

    DB_PREFIX = "foo_"