[ALOY-345] Load pre-existing SQLite DBs with sql adapter
GitHub Issue | n/a |
---|---|
Type | Improvement |
Priority | Medium |
Status | Resolved |
Resolution | Fixed |
Resolution Date | 2013-01-09T17:01:19.000+0000 |
Affected Version/s | n/a |
Fix Version/s | Alloy 0.3.5, 2013 Sprint 02 |
Components | Runtime |
Labels | notable |
Reporter | Tony Lukasavage |
Assignee | Unknown |
Created | 2012-10-25T17:12:57.000+0000 |
Updated | 2018-03-07T22:26:06.000+0000 |
Description
see conversation here: https://groups.google.com/forum/?fromgroups=#!topic/appc-ti-alloy/1q1e36mT6f0
Developers should be able to preload sqlite databases with the sql adapter models. To do so, they can add the new "db_file" field with the location of their db file. In addition, you can also explicitly name the database with the "db_name" field. This allows developers to continue to access a named, pre-loaded database even if they remove the "db_file" field:
examples
// standard sql model using default _alloy_ db to create
// table "fighters" based on config.columns
exports.definition = {
config: {
"columns": {
"name":"text",
"nickname":"text"
},
"adapter": {
"type": "sql",
"collection_name": "fighters"
}
}
}
// sql model using specified customDb db to create
// table "fighters" based on config.columns. customDb
// can be referencing an existing db or creating a new one.
// This allows for multiple sqlite dbs in an Alloy app.
exports.definition = {
config: {
"columns": {
"name":"text",
"nickname":"text"
},
"adapter": {
"type": "sql",
"collection_name": "fighters",
"db_name": "customDb"
}
}
}
// load myapp.sqlite db file if myapp db does not exist, auto-populate
// config.columns based on pragma table_info("fighters")
, which lists
// table info regarding the fighters table
exports.definition = {
config: {
"adapter": {
"type": "sql",
"db_file": "/sql_preload.sqlite",
"collection_name": "fighters"
}
}
}
pre-loaded databases supported as per the ticket description. An example can be found at: https://github.com/appcelerator/alloy/tree/master/test/apps/models/sql_preload