Django: таблица не существует после переноса базы данных MySQL на сервер MySQL

Резюме: после загрузки mysql «site_dump.sql» на сервер MySQL и применения правильных настроек для указания на базу данных я получаю сообщение об ошибке «Таблица не существует»

Подробная информация об ошибке: ProgrammingError: (1146, «Таблица 'оценка.Evaluator_skill' не существует»)

Наблюдения: только таблица Пользователь показывает все данные, которые у меня были. Все остальные таблицы выдают ту же ошибку. Если я вхожу в оболочку MySQL, использую эту новую базу данных и вижу данные таблицы, все таблицы и их данные присутствуют.

Что именно я сделал:

  • На моем локальном ПК взял дамп sql следующим образом:

    mysqldump -u root -p --databases имя_базы_данных> mysite_26_11_2018.sql

  • Скопировал этот файл на сервер.

  • Запустил оболочку MySQL на сервере, используя имя пользователя root, и создал новую базу данных:

    mysql> создать базу данных db_server;

  • Затем по запросу загрузил скопированный БД следующим образом:

    mysql -u корень -p db_server <mysite_26_11_2018.sql

  • Снова войдите в mysql и выполните следующие действия:

    mysql> создать пользователя server_admin, идентифицированного как admin_password;

    mysql> предоставить все на db_server. * 'server_admin' @ '%';

    mysql> очистить привилегии;

Что я пробовал: - 1) Выполнил makemigrations и migrate, но без изменений.

2) Проверено с помощью оболочки MySQL, что все данные присутствуют в базе данных.

3) Проверено с помощью оболочки django, что все данные пользователя присутствуют, но все другие таблицы дают ту же ошибку.

Это не похоже на проблему с django, это похоже на проблему с дампом / импортом mysql - я предлагаю вам удалить тег django, и вы, вероятно, получите необходимую помощь. PS. Миграции django не волшебны - он смотрит на таблицу с именем django_migrations, и если там указано имя миграции, django считает, что она применена (он НЕ сканирует вашу схему базы данных и не сравнивает ее и ... нет. просто нет). Для меня ваша проблема звучит так, как будто вы не смогли сбросить все необходимые таблицы.

Javier Buzzi 27.11.2018 10:31

Альтернативой является использование Workbench, который создаст файл sql для каждой таблицы. затем вы можете вручную импортировать неудачные (ссылочные проблемы и т. д.)

Krish 27.11.2018 10:37

@JavierBuzzi Спасибо за ответ. Ил снимаю метку. Но я уже вижу в MySQL new db, что присутствуют все таблицы с их данными. Ничего не пропало. Я попытаюсь повторить шаги миграции БД еще раз.

Arindam Roychowdhury 27.11.2018 10:37

Я кое-что нашел. Ошибка: "оценка.имя_модели оценщика". Но в файле db я вижу имена таблиц как «имя_модели-оценщика». @JavierBuzzi ..... вы были правы ... Я думаю, что эта ошибка происходит при сбросе SQL ... Теперь, чтобы исправить это?

Arindam Roychowdhury 27.11.2018 14:48
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
4
169
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец решил это. Проблема заключалась в том, что все таблицы автоматически переводились в нижний регистр при создании файла дампа. Мне пришлось вручную изменить имя каждой таблицы, и все работало нормально.

ALTER TABLE oldtable RENAME TO Oldtable;

Рад, что ты его нашел;)

Javier Buzzi 27.11.2018 15:27

Другие вопросы по теме