2016-09-08 6 views
0

Этот код работает на локальном компьютере другого человека - мы еще не запускаем его в производстве. Но моя не работает. Сотрудник указал, что мне нужно создать базу данных. До использования mysql я использовал sqlite, который не требовал этого.Создание базы данных Django

Когда я бегу питона manage.py runserver это то, что я получаю:

XX-MacBook-Pro:xx xx$ python manage.py runserver 
Performing system checks... 

Unhandled exception in thread started by <function wrapper at 0x104ebb668> 
Traceback (most recent call last): 
File "/Library/Python/2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper 
    fn(*args, **kwargs) 
File "/Library/Python/2.7/site-packages/django/core/management/commands/runserver.py", line 116, in inner_run 
    self.check(display_num_errors=True) 
File "/Library/Python/2.7/site-packages/django/core/management/base.py", line 426, in check 
    include_deployment_checks=include_deployment_checks, 
File "/Library/Python/2.7/site-packages/django/core/checks/registry.py", line 75, in run_checks 
    new_errors = check(app_configs=app_configs) 
File "/Library/Python/2.7/site-packages/django/core/checks/model_checks.py", line 28, in check_all_models 
    errors.extend(model.check(**kwargs)) 
File "/Library/Python/2.7/site-packages/django/db/models/base.py", line 1170, in check 
errors.extend(cls._check_fields(**kwargs)) 
File "/Library/Python/2.7/site-packages/django/db/models/base.py", line 1247, in _check_fields 
    errors.extend(field.check(**kwargs)) 
File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py", line 925, in check 
    errors = super(AutoField, self).check(**kwargs) 
File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py", line 208, in check 
    errors.extend(self._check_backend_specific_checks(**kwargs)) 
File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py", line 317, in _check_backend_specific_checks 
    return connections[db].validation.check_field(self, **kwargs) 
File "/Library/Python/2.7/site-packages/django/db/backends/mysql/validation.py", line 18, in check_field 
    field_type = field.db_type(connection) 
File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py", line 625, in db_type 
    return connection.data_types[self.get_internal_type()] % data 
File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 36, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 33, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
File "/Library/Python/2.7/site-packages/django/db/backends/mysql/base.py", line 184, in data_types 
    if self.features.supports_microsecond_precision: 
File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 33, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
File "/Library/Python/2.7/site-packages/django/db/backends/mysql/features.py", line 53, in supports_microsecond_precision 
    return self.connection.mysql_version >= (5, 6, 4) and Database.version_info >= (1, 2, 5) 
File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 33, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
File "/Library/Python/2.7/site-packages/django/db/backends/mysql/base.py", line 359, in mysql_version 
    with self.temporary_connection(): 
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/contextlib.py", line 17, in __enter__ 
    return self.gen.next() 
File "/Library/Python/2.7/site-packages/django/db/backends/base/base.py", line 564, in temporary_connection 
    cursor = self.cursor() 
File "/Library/Python/2.7/site-packages/django/db/backends/base/base.py", line 233, in cursor 
    cursor = self.make_cursor(self._cursor()) 
File "/Library/Python/2.7/site-packages/django/db/backends/base/base.py", line 204, in _cursor 
    self.ensure_connection() 
File "/Library/Python/2.7/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection 
    self.connect() 
File "/Library/Python/2.7/site-packages/django/db/utils.py", line 95, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
File "/Library/Python/2.7/site-packages/django/db/backends/base/base.py", line 199, in ensure_connection 
    self.connect() 
File "/Library/Python/2.7/site-packages/django/db/backends/base/base.py", line 171, in connect 
    self.connection = self.get_new_connection(conn_params) 
File "/Library/Python/2.7/site-packages/django/db/backends/mysql/base.py", line 264, in get_new_connection 
    conn = Database.connect(**conn_params) 
File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect 
    return Connection(*args, **kwargs) 
File "/Library/Python/2.7/site-packages/MySQLdb/connections.py", line 193, in __init__ 
    super(Connection, self).__init__(*args, **kwargs2) 
django.db.utils.OperationalError: (1049, "Unknown database 'testdb'") 

Мой файл настроек имеет следующее:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

...

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': 'testdb', 
    'USER': ‘xx’, 
    'PASSWORD': ‘xx’, 
    'HOST': 'localhost' 
    } 
} 

Я вы проверили пользователя, пароль и знаете, что они работают. Моя MySQL полностью функциональна.

Если удалить «NAME» в базах данных я получаю:

django.db.utils.OperationalError: (1046, 'No database selected') 

ответ

0

Предположительно вы проверили имя пользователя и пароль, перейдя в тузд оболочки. Так что вы можете просто сделать то же самое снова, а оттуда сделать CREATE DATABASE testdb.

+0

Когда я иду в оболочку через 'питон manage.py shell' и типа' CREATE DATABASE testdb' я получаю: '>>> CREATE БАЗ TESTDB Файл "", строка 1 СОЗДАТЬ БАЗ TESTDB ^ SyntaxError : недопустимый синтаксис >>> ' – Lefty

+0

Эта команда должна быть введена в оболочку SQL, а не в оболочку Python. Запустите 'python manage.py dbshell' вместо' python manage.py shell'. –

+0

Вот и все. Спасибо вам за помощь, Джон Гордон! – Lefty

Смежные вопросы