2016-08-14 17 views
1

私はSpringブートアプリケーションを持っており、データベースの初期化時にrootアカウントとしてusersテーブルにadminアカウントを設定する必要があります。ウェブの周りにチェックデータを含むプリロードSpringbootアプリケーション

は、私は、私も、私は実行すると、SQL文の

INSERT INTO users (username, password) VALUES ('admin', '$shiro1$SHA-256$500000$FkZcH5hP9oiYkP6UBK/84Q==$RHFwVRYTKNnCpKtlOu3Nfts8I+3Azfw5iUWokmW0dgI=') 

を以下にresoursesフォルダにdata.sqlを持って、私は私のapplication.properties

spring.datasource.url=jdbc:mysql://localhost:3306/dbname?createDatabaseIfNotExist=true 
spring.datasource.username=root 
spring.datasource.password= 

spring.jpa.generate-ddl= true 
spring.jpa.hibernate.ddl-auto= update 
spring.datasource.initialize=true 
spring.jpa.hibernate.dialect= org.hibernate.dialect.MySQL5Dialect 

でこれを持っていることを確認するように言われていますこのデータはユーザーテーブルには挿入されません

更新

デモ用にthis Github repoがあります。

+0

なぜスペースの先頭にプロパティ値がありますか?私はそれが問題かもしれないとは思わないが、私は 'spring.jpa.generate-ddl = true'などと試してみる。 –

答えて

1

schema.sqlファイルも必要です。空であってはなりません。それはハックですが、次の内容のschema.sqlを作成することができます。

SELECT 1; 

、すべてが正常に動作するはずです。

詳細については、official documentationを参照してください。

+0

こんにちは、schema.sqlを追加すると、データが挿入されます。問題は、アプリケーションを実行するたびに何度も繰り返し挿入することです。 –

+1

これは一般的に実行されることです。以前に実行されたかどうかをSpringに知らせる方法はありません。これがLiquibaseのような移行ツールの目的です。 –

+1

あなたの挿入物に「重複キー無視」を使ってみてください。 –

関連する問題