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

0

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

Сведения об ошибке: ProgrammingError: (1146, "Таблица "valuation.Evaluator_skill" не существует ")

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

Что я сделал точно:

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

    mysqldump -u root -p --db_name баз данных> mysite_26_11_2018.sql

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

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

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

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

    mysql -u root -p db_server <mysite_26_11_2018.sql

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

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

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

    mysql> сброс привилегий;

Что я пробовал: - 1) Побежал makemigrations и мигрируют, но без изменений.

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

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

  • 0
    Это не похоже на проблему с django, это похоже на проблему с дампом / импортом в mysql - я предлагаю вам удалить тег django и вы, вероятно, получите необходимую помощь. PS. Миграции django не являются волшебными - он просматривает таблицу с именем django_migrations и, если имя миграции присутствует, django считает, что она применяется (она НЕ сканирует схему базы данных и сравнивает ее и ... нет. просто нет.). Ваш вопрос звучит для меня так, будто вы не смогли сбросить все необходимые таблицы.
  • 0
    Альтернативой является использование Workbench, который создаст файл sql для каждой таблицы. затем вы можете вручную импортировать неисправные (проблемы со ссылками и т. д.)
Показать ещё 2 комментария
Теги:

1 ответ

1
Лучший ответ

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

ALTER TABLE oldtable RENAME TO Oldtable;
  • 1
    Рад, что вы нашли это;)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню