У меня есть приложение Spring Boot, и я хотел бы заполнить базу данных при первом запуске приложения, но не при каждом запуске приложения, а только в том случае, если данные еще не существуют.
Мое приложениеимеет файл data.sql , и он вставляет пользователей по умолчанию:
-- insert the administrator
INSERT INTO users(id, username, password_hash, email, first_name, last_name) VALUES
(1, 'admin', 'comixed', 'email1@domain.com', 'ComixEd', 'Administrator'),
(2, 'user', 'comixeduser', 'email2@domain.com', 'ComixEd', 'User')
;
-- insert the supported roles
INSERT INTO roles(id, name) VALUES
(1, 'Administrator'),
(2, 'User')
;
-- set the administrator roles
INSERT INTO users_roles(user_id, role_id) VALUES
(1, 1),
(1, 2),
(2, 2)
;
Но Spring, очевидно, пытается запускать этот файл каждый раз, когда я запускаю приложение.И когда это происходит, возникает исключение, поскольку пользователи и роли уже находятся в базе данных.
Какой лучший способ сделать это?И, как вариант, как можно добавить новые начальные данные, если в будущем новые функции потребуют новых ролей и т. Д .?