Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
10 / 10 / 3
Регистрация: 28.07.2013
Сообщений: 181

Переезд на MySQL

01.05.2016, 19:01. Показов 709. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день! Создал проект на Джанго, там база по умолчанию sqlite3. И вот нам понадобилось переехать на MySQL. Создал вторую базу, прописал ее в конфиге Джанго, вот так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DATABASES = {
        'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'mysql': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'name',
        'USER': 'user',
        'PASSWORD': 'pass',
        'HOST': 'localhost',
        'PORT': '',
    }
}
Потом миграции, чтобы было все актуально. И вот при выполнении [PYTHON]python manage.py [ syncdb --no-initial-data --database=mysql/PYTHON]
вылезает ошибка:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Running migrations:
  Rendering model states... DONE
  Applying main.0004_menuitem_parent...Traceback (most recent call last):
  File "/home/a/alicei/django.teamlead.info/HelloDjango/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/base.py", line 393, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/base.py", line 444, in execute
    output = self.handle(*args, **options)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/commands/syncdb.py", line 25, in handle
    call_command("migrate", **options)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/__init__.py", line 120, in call_command
    return command.execute(*args, **defaults)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/base.py", line 444, in execute
    output = self.handle(*args, **options)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 221, in handle
    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/migrations/executor.py", line 110, in migrate
    self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/migrations/executor.py", line 148, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/migrations/migration.py", line 115, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/migrations/operations/fields.py", line 62, in database_forwards
    field,
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/backends/mysql/schema.py", line 43, in add_field
    super(DatabaseSchemaEditor, self).add_field(model, field)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 384, in add_field
    definition, params = self.column_sql(model, field, include_default=True)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 146, in column_sql
    default_value = self.effective_default(field)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 211, in effective_default
    default = field.get_db_prep_save(default, self.connection)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/models/fields/related.py", line 1956, in get_db_prep_save
    return self.related_field.get_db_prep_save(value, connection=connection)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 710, in get_db_prep_save
    prepared=False)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 978, in get_db_prep_value
    value = connection.ops.validate_autopk_value(value)
  File "/home/a/alicei/.local/lib/python3.4/site-packages/django/db/backends/mysql/operations.py", line 137, in validate_autopk_value
    raise ValueError('The database backend does not accept 0 as a '
ValueError: The database backend does not accept 0 as a value for AutoField.
Я мало пока понимаю, но вроде как ошибка на поле таблицы menuitem parent. Это привязка к этой же таблице, вот код модели:
Python
1
2
3
4
5
6
class MenuItem(models.Model):
    menu = models.ForeignKey(Menu)
    parent = models.ForeignKey('self', blank=True, null=True, verbose_name='Родительский пункт меню')
    name = models.CharField('Пункт меню', max_length=255)
    link = models.CharField('Ссылка', max_length=255, blank=True, null=True)
    sort = models.IntegerField('Сортировка', default=100)
И никаких значений 0 тут нет, проверил запросом. Подскажете, почему так получается? Спасибо!

Добавлено через 20 часов 17 минут
Сам решил вопрос. Правда, так и не выяснил, что тут за косяк был. Просто я сделал дамп базы
Python
1
python manage.py dumpdata > $APPNAME.json
Потом в Мозилле с помощью аддона Sqlite Manager перевел дамп в файл .sql, исправил синтаксические различия, типа замены AUTOINCREMENT на AUTO_INCREMENT, кое-где кавычки на апострофы. Ну и загнал все это в MySQL. Все работает, счастье и т.д.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.05.2016, 19:01
Ответы с готовыми решениями:

Переезд с КА 1.1 в КА 2.4
Здравствуйте. Имеется КА 1.1, имеется желание перейти на КА 2.4 (пока тестово). Установил КА 2.4, облазил весь интернет и не могу найти как...

Неудачный переезд
Проблема в следующем. Решили осуществить переезд с одного сервера на другой. Файлы все были скопированы корректно. Но при переносе файлов...

Переезд на Python 3.8
Всем привет! Возникла череда вопросов, когда решил переехать на актуальную версию питона. Так получилось, что я не использовал...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2016, 19:01
Помогаю со студенческими работами здесь

Переезд АТС
Доброго всем дня! Подскажите пож-та, предстоит переезд в новый офис, соответственно все оборудование в том числе и АТС (KX-NS500RU) нужно...

Переезд с DLE на WP
Всем привет. Написал скрипт для переезда с DLE на WP. Встал на переезде категорий. Множество инструкций гласит: TRUNCATE ...

Переезд с хостинга
Меняю хостинг. Пока тупо скопировал все файлы и дамп базы данных и залил на новый. Засада в том что возможно были файлы которые заливал в...

Переезд с WP на Drupal.
Хотим с минимальнымы потерями в поисковиках переехать с wordpress на друпал. Что посоветуете?

Переезд сайта
Добрый день, подскажите пожалста по такому вопросу: У меня есть сайтик небольшой, он проиндексирован нормально и подраскручен, но сейчас...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru