Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 29, 2014 18:58:29

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Использование sqlserver

При настройке бэкенда для базы данных возникли проблемы.
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)

Офлайн

#2 Апрель 29, 2014 23:40:50

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Использование sqlserver

masha
у вас же текст ошибки приведен:

django.db.utils.DatabaseError: (-2147352567, 'Ошибка', (0, u'Microsoft SQL Server Native Client 10.0', 'Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона.', None, 0, -2147217913), None)
м.б. напутано в моделях что то - в частности столбцы. Разбираться надо.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 30, 2014 06:00:55

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Использование sqlserver

JOHN_16
Так вся соль в том, что в таблицах описанных в моделе нет строк типа data/time, у меня почти все строки charfiels или text. При использовании другой БД проблем не возникает.

update1
Сейчас опытным путем установила, что ошибка возникает при создании таблиц для приложения django.contrib.auth. Подскажите в какую сторону мне двигаться?

Отредактировано masha (Апрель 30, 2014 12:22:31)

Офлайн

#4 Апрель 30, 2014 13:18:55

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Использование sqlserver

Ураа, я смогла разобраться в чем проблема. Все это из-за того, что формат даты заданный в приложении и формат даты установленный в БД различались, из-за этого возникала ошибка (Преобразование типа данных nvarchar в тип данных datetime привело к выходу значения за пределы диапазона.).

Решением данный проблемы служит изменение формата даты на сервере. Формат даты в mssql меняется при изменении языка пользователя. Я язык пользователя поменяла на английский и все заработало.

Язык в Microsoft SQL Server Management Studio меняется в: Раскрываете пункт “Безопасность” - “Имена входа” там выбираете нужного пользователя, щёлкаете правой кнопкой по нему и входите в “Свойства”, там изменяете “Язык по умолчанию” на нужный.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version