首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在django中重新启动postgres连接

在django中重新启动postgres连接
EN

Stack Overflow用户
提问于 2017-10-18 08:16:35
回答 1查看 664关注 0票数 1

我这里的情况很奇怪。

问题:我描述了这个post内部的原始问题,但总括而言:

使用这个项目一段时间后,我的工作就停止了。(是的,我把一切都安排好了,设置都好了,..请参阅我对上一篇文章的评论)

我决定我搞不清楚这件事,所以我会重新开始。(这就是为什么git是用于:D )

因此,我删除了django项目,创建了新的虚拟环境,并在postgres中创建了新的数据库和新用户。

我在配置文件中更新了新的数据库参数,并尝试运行初始的生成,但是没有luch。据说目前还没有新的移民。

我很绝望,因为我不能在这个项目上工作,所以任何解决方案都可以。

代码语言:javascript
复制
(virtual_environment) MacBook-Pro-2:MY_PROJECT marko$ python manage.py makemigrations connectors environment=local
I will use local settings.
No changes detected in app 'connectors'

我所有的迁徙

代码语言:javascript
复制
(virtual_environment) MacBook-Pro-2:MY_PROJECT marko$ python manage.py showmigrations environment=local
I will use local settings.
admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
connectors
 (no migrations)
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
sessions
 [X] 0001_initial

午餐迁移时

代码语言:javascript
复制
(virtual_environment) MacBook-Pro-2:MY_PROJECT marko$ python manage.py migrate --fake-initial environment=local
I will use local settings.
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  No migrations to apply.

有趣的是,如果我关闭postgres数据库,我仍然在终端中得到相同的文本。我想我应该得到一些连接错误。

数据库配置yaml

代码语言:javascript
复制
database:
  port: 5432
  host: 'localhost'
  user: 'user1'
  password: 'user_password_123!'
  db: 'db1'

我的设置文件:

代码语言:javascript
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': CONFIG['database']['db'],
        'USER': CONFIG['database']['user'],
        'PASSWORD': CONFIG['database']['password'],
        'HOST': CONFIG['database']['host'],
        'PORT': CONFIG['database']['port'],
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-19 04:32:40

很多小时后,我找到了解决办法,这实际上是我的错误。我将只为那些犯类似错误的人贴出答案:D

事实上,“阿拉斯代尔”和“阿达姆·巴恩斯”是对的。我没有连接到新数据库,但不是因为数据库设置错误(主机、端口、用户名、db、.)

我在settings.py中拥有的是数据库和单元测试数据库的设置。

代码语言:javascript
复制
# Databases start
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': CONFIG['database']['db'],
        'USER': CONFIG['database']['user'],
        'PASSWORD': CONFIG['database']['password'],
        'HOST': CONFIG['database']['host'],
        'PORT': CONFIG['database']['port'],
     }
}

if 'test' or 'jenkins' in sys.argv:
    DATABASES['default'] = {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'test_database',
}

问题是下面的if声明。出于某种原因,他明白这一切都是真的。因此,程序迁移sqlite内部测试数据库。

我需要用

代码语言:javascript
复制
if ('test' in sys.argv) or ('jenkins' in sys.argv):

这个修复了第一个问题,即当进行迁移时,它会留下空数据库。修复后,迁移用默认Django表填充数据库,但不填充我的表。

修复方法是将我的models.py导入到admin.py文件中。

代码语言:javascript
复制
import connectors.models

谢谢大家给我很好的提示,找出解决办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46805623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档