Comments (8)
@chrisjeon Try something like this
@Database(fileName = MyDatabase.FILE_NAME, version = MyDatabase.VERSION)
public final class MyDatabase {
public static final int VERSION = 1;
public static final String FILE_NAME = "my.sqlite";
public static final String[] _MIGRATIONS = {
// Put DDL/DML commands here, one string per VERSION increment
};
@OnUpgrade
public static void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
for (int i = oldVersion; i < newVersion; i++) {
String migration = _MIGRATIONS[i - 2];
db.beginTransaction();
try {
db.execSQL(migration);
db.setTransactionSuccessful();
} catch (Exception e) {
Timber.e(e, "Error executing database migration: %s", migration);
break;
} finally {
db.endTransaction();
}
}
}
}
from schematic.
You need to use @OnUpgrade
annotated method.
from schematic.
@geovanisouza92 can you give an example on how we use that? Do we just declare it like that in the link? Because I tried it, and it doesn't work. It seems that we have to fill in the method some how.
from schematic.
In the comment inside _MIGRATIONS
, what is "Put DDL/DML commands here, one string per VERSION increment" mean? Sorry, I'm pretty new to Android.
from schematic.
from schematic.
Ah, so let's say I have 3 sql statements that I would like to run, I would have to bump up the version number by 3?
from schematic.
You could use DML (CREATE TABLE
, ALTER TABLE
) or DML (INSERT
, UPDATE
, DELETE
) to modify your db.
Upgrade to 4
, because 1
is the first version, and you are applying 3 statements. With the example code that I put above, if you set VERSION
to 3, the last command will not be applied.
from schematic.
Thanks dude, when I get the time, I'll do a PR of updated README.md with better documentation.
from schematic.
Related Issues (20)
- Add support for check, foreign key and primary key on table level. HOT 1
- Write the changelog in the GitHub releases
- Migrate from Apt to AnnotationProcessor HOT 4
- App crashes when trying to redeploy HOT 5
- Observation on placement of the database class
- NullPointerException on build when adding new Table HOT 1
- Create dropped tables again HOT 4
- Limit with Parameter HOT 1
- Join example
- Latest Version HOT 1
- java.lang.NullPointerException with no clue when using schematic 0.7.0 in SDK 26 and using annotationProcessor library. HOT 5
- When is onupgrade called in database HOT 2
- Unable to include repository with gradle
- Generated class not found on dexpathlist , Android Studio 3.0 HOT 1
- @InexactContentUri with String value HOT 4
- using where to add LIKE statement HOT 1
- Package net.simonvt.schematic.utils does not exist HOT 8
- How to use path value in WHERE clause?
- Unable to get provider error HOT 3
- How to validate content values before insertion or update?
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 schematic.