2017-10-18 9 views
1

私は非常に奇妙な状況があります。djangoでポストグル接続を再開

問題: 私はこのpost内の元の問題を説明したが、合計する:

をしばらくの間、プロジェクトを使用した後、makemigrationsは私のために動作を停止。 (はい、私はすべてOKに設定しました。設定はOKです。以前の投稿のコメントをご覧ください)

私はこれを理解できないと判断したので、私は新鮮な状態から始めます。 (これはgitのためです:D)

私は私のdjangoプロジェクトを削除し、私は新しい仮想環境を作成し、私もpostgresで新しいデータベースと新しいユーザーを作成します。

私の設定ファイルの中で新しいデータベースパラメータを更新し、初期のマカマイグレーションを実行しようとしますが、luchは実行しません。それでも、新しい移行は利用できないと言われています。

私がプロジェクトで作業することはできませんので、いずれかの解決策がどうなるので、私は必死だ:D

(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' 

すべての私の移行

(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 

ランチ移行

(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

database: 
    port: 5432 
    host: 'localhost' 
    user: 'user1' 
    password: 'user_password_123!' 
    db: 'db1' 

と私の設定ファイル:時間をたくさんした後

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'], 
    } 
} 
+0

'showmigrations'に' [X] 'がたくさんある場合は、新しいデータベースではなく既存のデータベースに接続していることを意味します。 – Alasdair

+0

新しいデータベースを作成するために使用しているコマンドを投稿してください。 Djangoにはすでにデータベースが設定され、そこに移行されていると報告されています。これは、新しいデータベースを作成していないか、新しいデータベースに接続していないことを示しています。 –

答えて

0

、私は解決策を見つけた、そしてそれは実際に私の間違いでした。 私は似たような間違いをした人のためだけに回答を投稿します:D

実際、@Alasdairと@AdamBarnesは正しかったです。

私がsettings.pyに持っているものは、ユニットテスト用のデータベースとデータベースの設定でした。新しいデータベースに接続していませんでしたが、データベース設定が間違っていました(ホスト、ポート、ユーザー名、

# 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', 
} 

問題は次のとおりです。何らかの理由で彼はこれが常に真実であったことを理解しています。したがって、プログラムはsqlite内部テストデータベースを移行します。

は私が移行を行うときには、空のデータベースを残すことを、この最初の問題を解決

if ('test' in sys.argv) or ('jenkins' in sys.argv): 

でこれを修正する必要があります。 この修正の後、マイグレーションはデータベースにデフォルトのDjangoテーブルを取り込みましたが、私のテーブルでは作成されませんでした。

これは、私のmodels.pyをadmin.pyファイル内にインポートするための修正です。

import connectors.models 

ありがとうございます。私に大きなヒントを与えてくれた皆さん、ありがとうございました。

+0

あなた自身の答えを受け入れてください。質問は「未回答」リストには表示されません。 –

+0

23時間後に私は受け入れます –

関連する問題