MOBILE-4284 question: Drop unused DB columns
WebSQL doesn't support dropping columns, that's why we're migrating to a new table with the _2 suffix instead.main
parent
e87408418b
commit
391dfbdfcc
|
@ -12,16 +12,17 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import { SQLiteDB } from '@classes/sqlitedb';
|
||||
import { CoreSiteSchema } from '@services/sites';
|
||||
|
||||
/**
|
||||
* Database variables for CoreQuestion service.
|
||||
*/
|
||||
export const QUESTION_TABLE_NAME = 'questions';
|
||||
export const QUESTION_TABLE_NAME = 'questions_2';
|
||||
export const QUESTION_ANSWERS_TABLE_NAME = 'question_answers';
|
||||
export const QUESTION_SITE_SCHEMA: CoreSiteSchema = {
|
||||
name: 'CoreQuestionProvider',
|
||||
version: 1,
|
||||
version: 2,
|
||||
tables: [
|
||||
{
|
||||
name: QUESTION_TABLE_NAME,
|
||||
|
@ -45,14 +46,6 @@ export const QUESTION_SITE_SCHEMA: CoreSiteSchema = {
|
|||
name: 'componentid',
|
||||
type: 'INTEGER',
|
||||
},
|
||||
{
|
||||
name: 'userid',
|
||||
type: 'INTEGER',
|
||||
},
|
||||
{
|
||||
name: 'number',
|
||||
type: 'INTEGER',
|
||||
},
|
||||
{
|
||||
name: 'state',
|
||||
type: 'TEXT',
|
||||
|
@ -102,6 +95,15 @@ export const QUESTION_SITE_SCHEMA: CoreSiteSchema = {
|
|||
primaryKeys: ['component', 'attemptid', 'name'],
|
||||
},
|
||||
],
|
||||
async migrate(db: SQLiteDB, oldVersion: number): Promise<void> {
|
||||
if (oldVersion < 2) {
|
||||
await db.migrateTable(
|
||||
'questions',
|
||||
QUESTION_TABLE_NAME,
|
||||
({ component, componentid, attemptid, slot, state }) => ({ component, componentid, attemptid, slot, state }),
|
||||
);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -112,8 +114,6 @@ export type CoreQuestionDBRecord = {
|
|||
attemptid: number;
|
||||
slot: number;
|
||||
componentid: number;
|
||||
userid: number;
|
||||
number?: number; // eslint-disable-line id-blacklist
|
||||
state: string;
|
||||
};
|
||||
|
||||
|
|
|
@ -547,14 +547,11 @@ export class CoreQuestionProvider {
|
|||
state: string,
|
||||
siteId?: string,
|
||||
): Promise<void> {
|
||||
|
||||
const site = await CoreSites.getSite(siteId);
|
||||
const entry: CoreQuestionDBRecord = {
|
||||
component,
|
||||
componentid: componentId,
|
||||
attemptid: attemptId,
|
||||
userid: userId,
|
||||
number: question.number, // eslint-disable-line id-blacklist
|
||||
slot: question.slot,
|
||||
state: state,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue