有什么想法我可以保存它而不写一个大的sql文件。图像小于MEDIUMBLOB的大小。但写sql创建和插入数据到表是非常笨拙和不可维护的。
当前实施:我在mariadb上使用带有flyway迁移的Spring Boot
resources
db.migration
- V2__init.sql
- V3__insert_table_data.sql
在V2__init.sql内部
CREATE TABLE IF NOT EXISTS table_name
(
id PRIMARY KEY,
image MEDIUMBLOB
);
在V3__insert_table_data.sql内部
INSERT INTO table_name VALUES (‘some_id’,’<very_big_image_data>’)
如何将图像文件直接读入sql,并将条目插入表中。任何帮助和想法都不胜感激:)
1条答案
按热度按时间cgh8pdjw1#
这个问题与我们的团队最初尝试使用基于sql的flyway迁移时遇到的问题类似
由于使用SQL语句存储blob的复杂性,我们转而在基于Java的迁移脚本中使用spring JDBC模板。https://flywaydb.org/documentation/concepts/migrations#java-based-migrations
关于您的问题,我们需要在src/main/java文件夹中创建一个名为db.migration的单独文件夹,以便flyway选择基于java的迁移,并根据名称中提供的版本号依次运行它。
使用spring jdbc模板和从机器读取图像文件的示例实现。这假定图像与源代码一起签入