Comments (7)
From [email protected] on October 27, 2010 16:29:21
Hello Mathias,
Thanks for your suggestion. I certainly agree that the lower the number of dependencies a framework has, the easier it is to integrate in a existing project.
I will have a look this weekend at the impact it would cause, should be duplicate all the Spring classes we depend on in a package hierarchy below let's say com.googlecode.flyway.util.spring or something similar.
I'll keep you posted.
Axel
from flyway.
From [email protected] on October 30, 2010 12:57:30
Hello Mathias,
We basically use 3 spring features: classpath scanning, transaction management and the jdbc abstraction. This means (for Spring 2.5.6) that we are talking about 6 jar files that weigh about 1.73 MB. Is Spring itself as dependency a problem, or is it the size of the jar files?
Axel
from flyway.
From [email protected] on October 30, 2010 22:37:29
Well, I'm planning on using it for the Play! Framework (see http://groups.google.com/group/play-framework/browse_thread/thread/61f8448a58b02042/fc88cbb62ec711ad) and I'd rather stay away from pulling in Spring. Classpath scanning for property files is easy to implement yourself (e.g. take a look at Google Guava's Resources class (http://code.google.com/p/guava-libraries/source/browse/trunk/src/com/google/common/io/Resources.java). Transaction management should IMO be implemented by the container wherein Flyway runs. That leaves us JDBC abstraction. Not too hard to implement, and it could even be abstracted specifically for incremental schema updates. Just my thoughts, feel free to ignore ;-).
from flyway.
From [email protected] on November 02, 2010 19:22:29
Hello Mathias,
I just spoke to Christian about this again this evening. We understand your concerns, and as I already said, we definitely strive to minimize the amount of dependencies we depend on.
By looking at it more closely, we came to the conclusion that offering replacements (or embedding the relevant spring classes under a different package) for the functionality we require (classpath scanning for property files and classes, transaction management, the jdbc abstraction and the collection of small utility classes like StringUtils or ObjectUtils) would both increase the size and the scope of Flyway beyond the razor-sharp focus on DB Migration we strive to maintain.
Also, it would likely lead to lower quality, less well tested code than what spring provides. All this will also significantly increase the size of the Flyway distribution itself.
We therefore decided to keep the dependency on Spring.
Cheers,
Axel
from flyway.
From [email protected] on November 10, 2011 02:27:38
Decided to re-open. The more I think about it, the more I like the idea of Flyway having zero dependencies. Cost (in KB) of repackaging the relevant Spring code should be evaluated for a 2.0 release.
from flyway.
From [email protected] on June 06, 2012 17:12:22
This issue was closed by revision d12366379907.
from flyway.
From [email protected] on October 24, 2012 15:10:14
Great news! The comment nr 4 made me choose mybatis over flyway at that time. I'll consider again flyway for future projects.
from flyway.
Related Issues (20)
- Problem with Spring Boot 3.2.3 and Flyway 10.10.0 for MongoDB 7.0.6 HOT 2
- Upgrade Jackson dependency to resolve CVE-2023-35116 HOT 1
- Unknown configuration property: flyway.plugins.postgresql.transactional.lock HOT 2
- Command-line: ERROR: Unexpected error - Does not try to connect HOT 1
- Remove java.desktop module dependency HOT 1
- Documentation for Flyway Python Migration HOT 6
- SQL Flyway parse error caused by comment block containing flyway configuration items HOT 6
- Flyway BigQuer migration synchronisation issues
- Support PostgreSQL Dialect Cloud Spanner Database
- Flyway Migration error flyway 4 to flyway 9.10.0 Unable to decrease block depth below throwing while script excution
- ClassCastException HOT 6
- Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Receiver class org.flywaydb.database.postgresql.PostgreSQLDatabase does not define or inherit an implementation of the resolved method 'abstract void ensureSupported()' of abstract class org.flywaydb.core.internal.database.base.Database. HOT 2
- Document Error HOT 3
- RegexRulesEngine Code analysis will detect default code 'violations' even when the text is within block comments or embedded in a string HOT 3
- Oracle: Flyway parsing bug: unable to decrease block depth below 0
- Migration fails for Derby databases created with collation=TERRITORY_BASED
- Parser Limitation - Incomplete statement at line 1 col 1 HOT 1
- Flyway command line FIPS enable & compliant changes ?
- Flyway command line FIPS enable & compliant changes ? HOT 1
- null string exception when executing Flyway command on Spanner database after upgrading from 8.0.0 to 10.1.0 HOT 3
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 flyway.