Added migration for existing docs

This commit is contained in:
Tom Moor
2018-03-24 15:03:44 -07:00
parent 14c963ca70
commit 38494d6d3c

View File

@@ -0,0 +1,26 @@
module.exports = {
up: async (queryInterface, Sequelize) => {
// upgrade to slate-md-serializer 3.0 means that newlines saved in Markdown are now
// accurately reflected in the editor. To prevent a change in appearance in current docs
// we need to collapse existing multiple newlines in the db.
const [documents, metaData] = await queryInterface.sequelize.query(`SELECT * FROM documents`);
for (const document of documents) {
const id = document.id;
const fixedText = document.text.replace(/\n{2,}/gi, "\n\n");
if (fixedText === document.text) continue;
// raw query to avoid hooks
await queryInterface.sequelize.query(`
update documents
set "text" = :fixedText
where id = :id
`, { replacements: { fixedText, id } })
}
},
down: async (queryInterface, Sequelize) => {
// cannot be reversed
}
};