Автоматически создавать таблицу/базу данных, если она не существует, в коде?

#mysql #node.js

Вопрос:

В MongoDB, если я звоню, чтобы добавить модель в базу данных в коде, она просто создает таблицу и/или базу данных для вас, если она еще не существует. С MySQL это просто выдает мне ошибку, пока я не перейду и не создам таблицу вручную самостоятельно со всеми нужными столбцами — даже когда я попытался запустить экспресс-сеанс (для продвижения вперед мне пришлось создать таблицу «сеансы» в MySQL workbench с sid, истекает, данные, столбцы createdAt и updatedAt).

Мне интересно, есть ли способ просто создать его автоматически, если он не существует, или я просто неправильно подхожу ко всему этому (т. Е. Мне нужно создать его один раз навсегда, и я готов, даже после развертывания веб-сайта). Я уже создал страницу «database.sql» в коде VS, но я не уверен, как и где связать ее с моим основным кодом.

Комментарии:

1. В чем заключается ошибка? Это ошибка MySQL или node.js ошибка? Также опубликуйте некоторые коды в своем вопросе. Синтаксис таблицы создания MySQL имеет IF [NOT] EXISTS функцию. Возможно, вам захочется попробовать это, если вы еще этого не сделали.

Ответ №1:

ТАБЛИЦА СОЗДАНИЯ MySQL, ЕСЛИ ОНА НЕ СУЩЕСТВУЕТ, существует уже довольно давно.

Используйте это либо в файле SQL, либо где-нибудь в части инициализации вашего кода.

Если вы вручную создали правильную структуру в Workbench, возьмите выходные данные show create table sessions , и у вас будет воспроизводимая структура.

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

Комментарии:

1. Поэтому я бы связал его с помощью «требуется» в основном файле JS, верно? И как только я это сделаю, он автоматически выполнит запрошенные мной обновления?

2. Мои знания в области nodejs невелики, однако вам не может потребоваться файл SQL. Вам нужно будет установить некоторое соединение и выполнить create table if not exists sql.

Ответ №2:

Лучше вручную ввести таблицу в MySQL, а не в коде, просто сохраните файл database.sql, который вы можете сохранить в своем репозитории