Comments (3)
Hi @vtheuer,
Thank you for raising this issue for us. Currently, Liquibase does not validate JSON/Yaml schemas and to make that available a good amount of work is required. Our team has other priorities for the near future, but thanks to this issue and some others we have been working on we decided to consider adding a JSON/Yaml schema validator and put it in our backlog (for Liquibase 5). With that said, if you are keen to submit a PR for adding a change object validation to consider cases like the one you reported here that would be more than welcome, and we would be happy to review it or answer any question you might have.
Thanks,
Daniel.
from liquibase.
Hi @MalloD12,
I am indeed keen to submit a PR regarding this issue.
After skimming through the code, I believe the check cannot happen in the validate phase, as it operates on already-parsed changes. I think the code that should be updated is in AbstractChange.load
. Would it be OK to throw that kind of exception during the parse phase ?
I'm having trouble understanding how tests are arranged, could you point out which unit and integration tests are linked to this method ?
Finally, don't hesitate to tell me if this is not the right place to have this discussion.
Thanks in advance,
Virgile.
from liquibase.
Hi @vtheuer,
Virgil in my opinion, updating AbstractChange.load()
method could work, but I think that's not the right place. For the given case, doing a change like that one would be a workaround. Currently, these types of validation errors do not happen in XML format, because the XSD validations are triggered and prevent you from creating an invalid changelog. I think to fix this we should add similar support for JSON/YAML format, and to do that we can use the xml XSD schema (using a third-party library) as a starting point. If we create a PR updating the load()
method that may work for this case, but we will need to remove that piece of logic in the future when the mentioned solution is implemented.
Thank you for proposing ideas, that's very appreciated by the team.
Daniel.
from liquibase.
Related Issues (20)
- generate-changelog Fails Without Identifying View or Creating Changelog File Due to Invalid String Encoding Error HOT 1
- Release timing of 4.26.1 for critical CVE HOT 3
- Error when installing on RedHat 8 HOT 3
- Liquibase and SQLite doesn't work with NoClassDefFoundError: org/slf4j/LoggerFactory error HOT 9
- Unknown Column Error caused by precondition in addColumn changeSet HOT 4
- Oracle takes too long to process a simple .csv file HOT 2
- Getting Databricks error using an Oracle jdbc URL HOT 6
- MS SQL Server script generation puts DATABASECHANGELOGLOCK prior to USE statement HOT 2
- changeset with relative path deployed with liquibase 4.6.0 to 4.23.1 are replayed with liquibase > 4.23.1 HOT 4
- Dead links in the README file HOT 1
- Manual approval required for workflow run 8458496760: Deploying 4.27.0 to sonatype HOT 3
- Manual approval required for workflow run 8458903067: Deploying 4.27.0 to sonatype HOT 3
- Interplay between foreign keys and the include-objects/exclude-objects flags HOT 5
- The diffChangeLog command doesn't work for Snowflake functions HOT 6
- liquibase 4.25.0 mssql server case sensitive issue with sys.sp_updateextendedproperty
- Add support for AlloyDB HOT 1
- Make Checksum-Update downwards compatible HOT 5
- Liquibase Fails to Recognize Schema Names Containing the Letter 'i' in diff-changelog Command" HOT 2
- AbstractUpdateCommandStep.upToDateFastCheck global cache does not detect DB recreation HOT 4
- Databricks on JDK 21 fails with "Object 'DATABASECHANGELOGLOCK' already exists. HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from liquibase.