27 lines
895 B
JavaScript
27 lines
895 B
JavaScript
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
|
|
}
|
|
};
|
|
|
|
|