Форум сайта python.su
1
При настройке бэкенда для базы данных возникли проблемы.
Django 1.6, в качестве базы данных sql server 2008 r2, бэкенд django-mssql.
Описала модель, ввела настройки подключения к базе, при синхронизации с базой вылазиют ошибки.
Вот описание подключения к базе.
DATABASES = { 'default': { 'NAME': 'zoopark_site', 'ENGINE': 'sqlserver_ado', 'HOST': 'localhost', 'USER': 'sa', 'PASSWORD': 'manager', } }
Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 399, in execute_from_command_line utility.execute() File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 242, in run_from_argv self.execute(*args, **options.__dict__) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 285, in execute output = self.handle(*args, **options) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 415, in handle return self.handle_noargs(**options) File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py", line 112, in handle_noargs emit_post_sync_signal(created_models, verbosity, interactive, db) File "C:\Python27\lib\site-packages\django\core\management\sql.py", line 216, in emit_post_sync_signal interactive=interactive, db=db) File "C:\Python27\lib\site-packages\django\dispatch\dispatcher.py", line 185, in send response = receiver(signal=self, sender=sender, **named) File "C:\Python27\lib\site-packages\django\contrib\auth\management\__init__.py", line 126, in create_superuser call_command("createsuperuser", interactive=True, database=db) File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 159, in call_command return klass.execute(*args, **defaults) File "C:\Python27\lib\site-packages\django\core\management\base.py", line 285, in execute output = self.handle(*args, **options) File "C:\Python27\lib\site-packages\django\contrib\auth\management\commands\createsuperuser.py", line 141, in handle self.UserModel._default_manager.db_manager(database).create_superuser(**user_data) File "C:\Python27\lib\site-packages\django\contrib\auth\models.py", line 195, in create_superuser **extra_fields) File "C:\Python27\lib\site-packages\django\contrib\auth\models.py", line 186, in _create_user user.save(using=self._db) File "C:\Python27\lib\site-packages\django\db\models\base.py", line 545, in save force_update=force_update, update_fields=update_fields) File "C:\Python27\lib\site-packages\django\db\models\base.py", line 573, in save_base updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields) File "C:\Python27\lib\site-packages\django\db\models\base.py", line 654, in _save_table result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) File "C:\Python27\lib\site-packages\django\db\models\base.py", line 687, in _do_insert using=using, raw=raw) File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 232, in _insert return insert_query(self.model, objs, fields, **kwargs) File "C:\Python27\lib\site-packages\django\db\models\query.py", line 1511, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 899, in execute_sql cursor.execute(sql, params) File "C:\Python27\lib\site-packages\django\db\backends\util.py", line 69, in execute return super(CursorDebugWrapper, self).execute(sql, params) File "C:\Python27\lib\site-packages\django\db\backends\util.py", line 53, in execute return self.cursor.execute(sql, params) File "C:\Python27\lib\site-packages\django\db\utils.py", line 99, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "C:\Python27\lib\site-packages\django\db\backends\util.py", line 53, in execute return self.cursor.execute(sql, params) File "C:\Python27\lib\site-packages\django_mssql-1.5-py2.7.egg\sqlserver_ado\dbapi.py", line 551, in execute self._execute_command() File "C:\Python27\lib\site-packages\django_mssql-1.5-py2.7.egg\sqlserver_ado\dbapi.py", line 465, in _execute_command self._raiseCursorError(klass, _message) File "C:\Python27\lib\site-packages\django_mssql-1.5-py2.7.egg\sqlserver_ado\dbapi.py", line 403, in _raiseCursorError eh(self.connection, self, errorclass, errorvalue) File "C:\Python27\lib\site-packages\django_mssql-1.5-py2.7.egg\sqlserver_ado\dbapi.py", line 97, in standardErrorHandler raise errorclass(errorvalue) django.db.utils.DatabaseError: (-2147352567, 'Ошибка', (0, u'Microsoft SQL Server Native Client 10.0', 'Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона.', None, 0, -2147217913), None) Command: SET NOCOUNT ON;DECLARE @sqlserver_ado_return_id table ([id] int);INSERT INTO [auth_user] ([password], [last_login], [is_superuser], [username], [first_name], [last_name], [email], [is _staff], [is_active], [date_joined]) OUTPUT INSERTED.[id] INTO @sqlserver_ado_return_id VALUES (?, ?, ?, ?, '', '', '', ?, ?, ?);SELECT * FROM @sqlserver_ado_return_id Parameters: [Name: p0, Dir.: Input, Type: adBSTR, Size: 77, Value: "pbkdf2_sha256$12000$JZwpFUrz2Kvq$GqHlpuOqmTZML7NG+BGG1f/f8rUL6QbmTNo0SyC/TWI=", Precision: 0, NumericScale: 0, Name: p1, Dir.: Input, Type: adBSTR, Size: 23, Value: "2014-04-29 14:19:29.692", Precision: 0, NumericScale: 0, Name: p2, Dir.: Input, Type: adBoolean, Size: -1, Value: "True", Precision: 0, NumericS cale: 0, Name: p3, Dir.: Input, Type: adBSTR, Size: 4, Value: "life", Precision: 0, NumericScale: 0, Name: p7, Dir.: Input, Type: adBoolean, Size: -1, Value: "True", Precision: 0, Num ericScale: 0, Name: p8, Dir.: Input, Type: adBoolean, Size: -1, Value: "True", Precision: 0, NumericScale: 0, Name: p9, Dir.: Input, Type: adBSTR, Size: 23, Value: "2014-04-29 14:19:2 9.692", Precision: 0, NumericScale: 0]
Отредактировано masha (Апрель 30, 2014 05:59:27)
Офлайн
221
masha
у вас же текст ошибки приведен:
django.db.utils.DatabaseError: (-2147352567, 'Ошибка', (0, u'Microsoft SQL Server Native Client 10.0', 'Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона.', None, 0, -2147217913), None)
Офлайн
1
JOHN_16
Так вся соль в том, что в таблицах описанных в моделе нет строк типа data/time, у меня почти все строки charfiels или text. При использовании другой БД проблем не возникает.
update1
Сейчас опытным путем установила, что ошибка возникает при создании таблиц для приложения django.contrib.auth. Подскажите в какую сторону мне двигаться?
Отредактировано masha (Апрель 30, 2014 12:22:31)
Офлайн
1
Ураа, я смогла разобраться в чем проблема. Все это из-за того, что формат даты заданный в приложении и формат даты установленный в БД различались, из-за этого возникала ошибка (Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона.).
Решением данный проблемы служит изменение формата даты на сервере. Формат даты в mssql меняется при изменении языка пользователя. Я язык пользователя поменяла на английский и все заработало.
Язык в Microsoft SQL Server Management Studio меняется в: Раскрываете пункт “Безопасность” - “Имена входа” там выбираете нужного пользователя, щёлкаете правой кнопкой по нему и входите в “Свойства”, там изменяете “Язык по умолчанию” на нужный.
Офлайн