sql >> データベース >  >> RDS >> PostgreSQL

Heroku上のPostgreSQLアプリとDjangoが同期していない

    settings.pyリンク した元のコード に、DATABASESに対して2つの矛盾する宣言があるようです。 設定:

    1)3行目:

    DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
    

    2)16行目:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': 'traineeworld',                      # Or path to database file if using sqlite3.
            'USER': '',                      # Not used with sqlite3.
            'PASSWORD': '',                  # Not used with sqlite3.
            'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
        }
    }
    

    3)また、最新の編集の追加コードは、接続引数を指定するためのさらに別のメソッドのように見えます。これにより、前の宣言の効果が再び無効になる可能性があります。

    これらの方法は、互いに積み重ねることを意図したものではありません。 1つだけ選択したい。

    また、技術的には、データベースサーバーへのクライアント側接続のイニシエーターとして、知っている必要があります。 サーバーにTCP(この場合はホスト名またはIPアドレスとポート)を介して、またはUnixドメインソケットファイルを介して、その場合は完全なディレクトリパス(スラッシュで始まる)を介してサーバーに到達する場合。どちらの場合も、これはHOSTに入ります 接続パラメータの一部。

    Postgresはこれらすべてにデフォルト値を提供しますが、さまざまなソースからのさまざまなソフトウェアパーツを組み合わせて一致させるとすぐに、これらのデフォルトは役に立たなくなり、明示的な値を指定することが要件になります。

    ソケットのパスがわからない場合は、psql内にあります。 postgresユーザーとして接続されている場合、このパスはSQLコマンドで取得できます:

    SHOW unix_socket_directory;
    

    この設定は、サーバー側のpostgresql.confにもあります。 構成ファイル。



    1. SQLテーブルの更新時にリテラルがフォーマット文字列エラーと一致しません

    2. ActiveRecordがrbenvを使用して間違ったデータベースに接続しようとしています

    3. ODP.NETを使用したOracleとエンタープライズライブラリDAABの接続

    4. java.sql.SQLException:フィールド'supplier_id'にデフォルト値がありません