Project Melon creates a database abstraction for arbitrary structured files to enable the use of SQL for reading, combining and manipulating data.
- Maintaining data files (e.g. CSV, XML, etc.) in a proper environment that supports structured data instead of using a plain text editor... YES: read AND write - it is not an importer!
- Simple API to enable support for all kind of (custom) file formats
- Simple but flexible configuration
- XLS/XLSX storage adapter added
- use JOOQ as SQL abstraction layer
- storage parameter 'storage-adapter' to manually enforce certain storage adapter class
- MelonStorage: enables editing data across several files within one table
- FileWatcher for better data sync
- XML supports values as attributes
- properties are by default case-insensitive
- config property 'storage.location' is now 'storage.path'
- Column entity got a reference fields
- foreign key definition and creation
- separate wrapper and standalone driver but re-use connection class
- rename melon-standalone to melon-db
- support for arbitrary databases as backbone
- support for Html files
- project structure rework
- support for AUTO COMMIT
(currently manual commit required to update files with changes)
- JDBC driver backed by H2 in memory database
- succesfully tested with JDBC supporting database tools as DBeaver (community edition available) and DataGrip (commercial, integrated in IntelliJ IDEA Ultimate)
- support for .csv, .xml and .properties files
- YAML configuration with properties section for custom extensions
- configuration of tables (and their source), columns and views
- documentation with examples
- support for JSON
and Excelfiles - extended schema definition (e.g. value transformation & data types)
- smarter data sync (e.g. check for existing entities, update only what/when necessary, merge with existing data, file watcher, ...)
- support for data relation (e.g. combine data from different files into one editable table)
This project is in an early state - please use with caution and make backups of your files.
Please note: Changing data via JDBC may cause the source file to be updated in a different style than the original.