Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在特定表空间中使用postgres数据库设置django?_Python_Django_Postgresql_Settings_Psycopg2 - Fatal编程技术网

Python 如何在特定表空间中使用postgres数据库设置django?

Python 如何在特定表空间中使用postgres数据库设置django?,python,django,postgresql,settings,psycopg2,Python,Django,Postgresql,Settings,Psycopg2,你所期待的是: 设置.py DATABASES = { 'default': { 'NAME': 'db_name', 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'USER': 'user', 'PASSWORD': 'password', 'HOST': 'host', 'PORT': '5432', 'DEFAU

你所期待的是:

设置.py

DATABASES = {
    'default': {
        'NAME': 'db_name',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'host',
        'PORT': '5432',
        'DEFAULT_TABLESPACE': 'tablespace-name',
    }
}
当我使用DEFAULT_表空间时,我希望使用这个默认表空间授予访问权限。但我在那里用什么并不重要。另外,如果我在一个模型元类中显式使用db_表空间,就我所知,它不会做任何事情

我也尝试过不同的用户,但即使是用户postgres也不起作用。如果我定义db_table=“tablespace.tablename”,它也不起作用

将工作的SQL:

select count(*) from schemaname.tablename
我对数据库进行了备份,并在本地进行了恢复,而没有创建表空间。它可以很好地导入并忽略表空间。那就行了

如何使用带有表空间的postgres配置Django?还是阴谋论??事实上我什么都不懂,所以我希望你们能帮我

另见:

使用Django 1.3.1、postgresql 8.4和psycopg2

更新:

在使用表空间时,似乎没有选择“默认模式”。我尝试了一些测试,下面是使用./manage.py dbshell的结果:

这在不带表空间的数据库上有效,但在带表空间的数据库上无效:

select * from parameter;
这对两个数据库都有效:

select * from tablespace.parameter;

不幸的是,db设置中的“DATABASE_SCHEMA”选项不起作用,models元对象中的“db_SCHEMA”也不起作用。所以问题现在更清楚了。有人能解决这个问题吗?

模式和表空间是两码事

A本质上是一个名称空间。A是文件系统中的一个位置。图式是逻辑事物;表空间是物理的东西

如果您试图将一组相关表(可能还有其他命名对象)组合在一个名称空间中,那么您需要一个模式


如果您试图通过在快速SSD磁盘(与表、视图等不同的磁盘)上放置索引来提高速度,您需要一个表空间。

Django 1.3.1中不提供表空间支持。它将被添加到即将发布的Django 1.4中。谢谢,我不再寻找解决方案,而是要求数据库所有者更改表空间:-)