Обработка данных в коде сначала с помощью Sequelize.js и Postgres - PullRequest
1 голос
/ 19 июня 2019

Я создал новую базу данных Postgres и начал заполнять таблицы данными. Столы получили разные отношения друг с другом. Я использую приложение node.js и sequelize для обработки кода при первой миграции.

Моя проблема в том, что я не совсем уверен, как мне обращаться с самими данными при первом подходе кода.

В каждом скрипте миграции есть что-то простое:

up - создает таблицу, вниз - отбрасывает таблицу (и все данные внутри нее)

Что меня интересует, так это как мне обрабатывать все данные, которые добавляются сверхурочно в разные таблицы?

В настоящее время, если я когда-нибудь решу запустить 'db: migrate: undo' для любого из сценариев, он отбросит таблицу и все данные внутри нее.

Мне бы также хотелось иметь полную поддержку в восстановлении данных, поэтому, если мне когда-либо понадобится выполнить «db: migrate: undo: all», после того, как я снова запущу «db: migrate», у меня будет все предыдущие данные восстановлены.

Есть ли хороший подход к достижению этого? а может это плохая практика?

редактирование: Пример файла в настоящем -

module.exports = {
    up: (queryInterface, Sequelize) =>
      queryInterface.createTable('LookupType', {
        id: {
          allowNull: false,
          primaryKey: true,
          type: Sequelize.UUID,
        },
        name: {
          type: Sequelize.STRING(32),
          allowNull: false,
        },
        createdAt: {
          allowNull: false,
          type: Sequelize.DATE,
        },
        updatedAt: {
          allowNull: false,
          type: Sequelize.DATE,
        },
      },      
      {
        schema: 'lov'
      }),
    down: (queryInterface /* , Sequelize */) =>
      queryInterface.dropTable(
        {
          tableName: 'LookupType',
          schema: 'lov'
        }),
  };

1 Ответ

1 голос
/ 19 июня 2019

Миграции - это просто управление и управление версиями схемы , особенно на этапах разработки и развертывания.

В процессе разработки у вас могут быть тестовые данные, которые вы можете заполнить базой данных и с радостью выбросить во время отката миграции, но это может иметь катастрофические последствия для производственной системы.

Мне кажется, что как только выВыполнив эту миграцию в производственном режиме, вы не сможете вернуться назад, если это не будет абсолютно необходимо, и в этом случае вам потребуется другой процесс для резервного копирования и восстановления ваших данных.

...