Track database column versions and include in database version data
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
const Model = require('flitter-orm/src/model/Model')
|
||||
const VersionedModel = require('../../VersionedModel')
|
||||
const uuid = require('uuid/v4')
|
||||
|
||||
/*
|
||||
@@ -6,10 +6,11 @@ const uuid = require('uuid/v4')
|
||||
* -------------------------------------------------------------
|
||||
* Put some description here!
|
||||
*/
|
||||
class ColumnDef extends Model {
|
||||
class ColumnDef extends VersionedModel {
|
||||
static get schema() {
|
||||
// Return a flitter-orm schema here.
|
||||
return {
|
||||
...super.schema,
|
||||
headerName: String,
|
||||
field: String,
|
||||
DatabaseId: String,
|
||||
@@ -18,7 +19,7 @@ class ColumnDef extends Model {
|
||||
additionalData: { type: String, default: '{}' }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Static and instance methods can go here
|
||||
data_get(key) {
|
||||
return JSON.parse(this.additionalData ? this.additionalData : '{}')[key]
|
||||
@@ -40,7 +41,9 @@ class ColumnDef extends Model {
|
||||
uuid: this.UUID,
|
||||
database_id: this.DatabaseId,
|
||||
type: this.Type,
|
||||
metadata: this.data()
|
||||
metadata: this.data(),
|
||||
version_num: this.version_num,
|
||||
version_message: this.version_message,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,6 +66,20 @@ class Database extends VersionedModel {
|
||||
version_message: this.version_message,
|
||||
}
|
||||
}
|
||||
|
||||
async cast_to_version_data() {
|
||||
const data = await super.cast_to_version_data()
|
||||
const cols = await this.get_columns()
|
||||
|
||||
data.column_version_nums = cols.map(x => {
|
||||
return {
|
||||
ColumnId: x.UUID,
|
||||
version_num: x.version_num,
|
||||
}
|
||||
})
|
||||
|
||||
return data
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = Database
|
||||
|
||||
Reference in New Issue
Block a user