2016-08-13 12 views
1

Macで新しいDjangoプロジェクトを作成しようとしましたが、既存のDjangoプロジェクトをコピーしました。プロジェクトのコピー後にDjangoのインストールでマイグレーションのために間違ったパス名が取得される

私は新しいプロジェクトから古いプロジェクトパスへの参照を削除しようとしていますが、移行またはcreatesuperuserを行うとき、私はエラーを取得する:

psycopg2.OperationalError: invalid connection option "init_command" 

両プロジェクトはmyvenvと呼ばれる仮想環境を使用しています。元のプロジェクトはMySQLデータベースを使用していました。新しいものは、仮想環境にインストールされているPostgreSQLを使用します。

エラーのトレース履歴には、正しいパス名がyhistory-serverと表示され、一部には新しいプロジェクトがコピーされた元のプロジェクトのパス名が表示されます。veeuserver。私はすべてのコードを見てきましたが、veeuserverのパス名をどこから取得しているのかわかりません。

Traceback (most recent call last): 
File "/Applications/PyCharm.app/Contents/helpers/pycharm/django_manage.py", line 41, in <module> 
run_module(manage_file, None, '__main__', True) 
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/runpy.py", line 182, in run_module 
return _run_module_code(code, init_globals, run_name, mod_spec) 
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/runpy.py", line 96, in _run_module_code 
mod_name, mod_spec, pkg_name, script_name) 
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/runpy.py", line 85, in _run_code 
exec(code, run_globals) 
File "/Users/billnoble/Documents/YHistory-Server/manage.py", line 10, in <module> 
execute_from_command_line(sys.argv) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line 
utility.execute() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/core/management/__init__.py", line 345, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/core/management/base.py", line 348, in run_from_argv 
self.execute(*args, **cmd_options) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 52, in execute 
return super(Command, self).execute(*args, **options) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/core/management/base.py", line 399, in execute 
output = self.handle(*args, **options) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 86, in handle 
default_username = get_default_username() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/contrib/auth/management/__init__.py", line 189, in get_default_username 
auth_app.User._default_manager.get(username=default_username) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/models/manager.py", line 122, in manager_method 
return getattr(self.get_queryset(), name)(*args, **kwargs) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/models/query.py", line 381, in get 
num = len(clone) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/models/query.py", line 240, in __len__ 
self._fetch_all() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/models/query.py", line 1074, in _fetch_all 
self._result_cache = list(self.iterator()) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/models/query.py", line 52, in __iter__ 
results = compiler.execute_sql() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/models/sql/compiler.py", line 846, in execute_sql 
cursor = self.connection.cursor() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/backends/base/base.py", line 231, in cursor 
cursor = self.make_debug_cursor(self._cursor()) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/backends/base/base.py", line 204, in _cursor 
self.ensure_connection() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection 
self.connect() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/utils.py", line 95, in __exit__ 
six.reraise(dj_exc_type, dj_exc_value, traceback) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/utils/six.py", line 685, in reraise 
raise value.with_traceback(tb) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection 
self.connect() 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/backends/base/base.py", line 171, in connect 
self.connection = self.get_new_connection(conn_params) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/django/db/backends/postgresql/base.py", line 175, in get_new_connection 
connection = Database.connect(**conn_params) 
File "/Users/billnoble/Documents/VeeUServer/myvenv/lib/python3.4/site-packages/psycopg2/__init__.py", line 164, in connect 
conn = _connect(dsn, connection_factory=connection_factory, async=async) 
django.db.utils.OperationalError: invalid connection option "init_command" 

答えて

2

サイトをMySQLからPostgresに移動するときに同じ問題が発生しました。キーはsettings.pyファイルにあります。特に、データベースオプションを指定する場所にあります。 MySQLでは、それはこのように見えた:それはPostgresので動作させるために

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'OPTIONS': { 
     'read_default_file': '/etc/mysql/my.cnf', 
     'init_command': "SET sql_mode='STRICT_TRANS_TABLES'", 
    }, 
    'NAME': 'mydatabase', 
    'USER': 'username', 
    'PASSWORD': password, 
    'HOST': '127.0.0.1', 
    'POST': '', 
    } 
} 

、私はオプションとPOSTを削除し、「django.db.backends.postgresql」にエンジンを変更しなければならなかった、とPORTを追加します: '5432'これは次のようになります。

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.postgresql', 
    'NAME': 'mydatabase', 
    'USER': 'username', 
    'PASSWORD': password, 
    'HOST': '127.0.0.1', 
    'PORT': '5432' 
    } 
} 
0

まだpostgresデータベースを使用しようとしています。 DATABASESの設定をdjangoのmysqlバックエンドを使用するように更新する必要があります。すべての移行も削除する必要があります。移行を削除してDATABASESの設定を変更した後は、python manage.py migratepython manage.py makemigrations、次に最終的にcreatesupersuserになるはずです。

+0

問題は、mysqlではなくpostgreを使用する必要がある新しいプロジェクトにあります。 –

+0

申し訳ありません。 DATABASESの設定を変更しましたか? – denvaar

+0

データベースの設定はどのように変更する必要がありますか? –

関連する問題