【发布时间】:2018-01-14 17:14:13
【问题描述】:
我是 Django 新手,我正在尝试使用 Django(1.8) 在 Postgre 中创建表
以下是我的模型类
class Student(models.Model):
name = models.CharField(max_length = 50)
degree = models.CharField(max_length = 50)
numofsubs = models.IntegerField()
namesofsubs= models.CharField(max_length = 50)
details = models.CharField(max_length = 50)
class Meta:
db_table = "student"
views.py
def addStudent(request):
student = Student(name = request.name, degree = request.degree ,
numofsubs = request.numofsubs , nameofsubs = request.nameofparams , details = request.details)
student.save()
print 'data saved'
在我尝试运行 python manage.py migrate 进行这些更改后,我得到了django.db.utils.ProgrammingError: permission denied for relation django_migrations
以下是堆栈跟踪
Traceback(最近一次调用最后一次):文件“manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/core/management/init.py”, 第 338 行,在 execute_from_command_line utility.execute() 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/core/management/init.py”, 第 330 行,执行中 self.fetch_command(subcommand).run_from_argv(self.argv) 文件 "/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/core/management/base.py", 第 390 行,在 run_from_argv self.execute(*args, **cmd_options) 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/core/management/base.py”, 第 441 行,执行中 输出 = self.handle(*args, **options) 文件 "/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", 第 93 行,在句柄中 executor = MigrationExecutor(connection, self.migration_progress_callback) 文件 “/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/migrations/executor.py”, 第 19 行,在 init 中 self.loader = MigrationLoader(self.connection) 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/migrations/loader.py”, 第 47 行,在 init 中 self.build_graph() 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/migrations/loader.py”, 第 180 行,在 build_graph self.applied_migrations = recorder.applied_migrations() 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/migrations/recorder.py”, 第 60 行,在应用迁移中 return set(tuple(x) for x in self.migration_qs.values_list("app", "name")) 文件 “/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/models/query.py”, 第 162 行,在 iter 中 self._fetch_all() 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/models/query.py”, 第 965 行,在 _fetch_all 中 self._result_cache = list(self.iterator()) 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/models/query.py”, 第 1220 行,在迭代器中 对于 compiler.results_iter() 中的行:文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py”, 第 783 行,在 results_iter 中 结果 = self.execute_sql(MULTI) 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py”, 第 829 行,在 execute_sql 中 cursor.execute(sql,params)文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/backends/utils.py”, 第 79 行,在执行中 返回超级(CursorDebugWrapper,self).execute(sql,params)文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/backends/utils.py”, 第 64 行,在执行中 返回 self.cursor.execute(sql, params) 文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/utils.py”, 第 97 行,在 退出 六.reraise(dj_exc_type,dj_exc_value,traceback)文件“/usr/lib/ckan/default/local/lib/python2.7/site-packages/django/db/backends/utils.py”, 第 64 行,在执行中 return self.cursor.execute(sql, params) django.db.utils.ProgrammingError: 关系的权限被拒绝 django_migrations
我的settings.py 有以下用于 db 连接的配置
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'abc',
'USER': 'xyz',
'PASSWORD': 'xxxxx',
'HOST': 'localhost',
'PORT': 5432,
}
}
请指导我的应用程序出了什么问题。
谢谢
【问题讨论】:
-
您是否以 django 用户为所有者创建了 postgres 数据库?
-
我在通过 shel 安装 postgres 时创建了 db,现在我想通过 django 连接到该 db 并在表中创建和插入数据
-
你能测试本地连接
psql -h localhost -U xyz abc吗?
标签: python django postgresql