Miguel Serrano 3ff142d478 [web] Expose metric for active users in SP (#20130) 2 anni fa
..
lib b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190720165251_create_migrations.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190730093801_script_example.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145001_create_contacts_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145002_create_deletedProjects_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145003_create_deletedSubscriptions_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145004_create_docHistoryIndex_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145005_create_docHistory_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145006_create_docOps_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145007_create_docSnapshots_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145008_create_docs_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145009_create_githubSyncEntityVersions_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145010_create_githubSyncProjectStates_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145011_create_githubSyncUserCredentials_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145012_create_institutions_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145013_create_messages_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145014_create_notifications_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145015_create_oauthAccessTokens_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145016_create_oauthApplications_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145017_create_oauthAuthorizationCodes_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145018_create_projectHistoryFailures_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145019_create_projectHistoryLabels_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145020_create_projectHistoryMetaData_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145021_create_projectHistorySyncState_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145022_create_projectImportFailures_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145023_create_projectInvites_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145024_create_projects_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145025_create_publishers_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145026_create_rooms_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145027_create_spellingPreferences_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145028_create_subscriptions_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145029_create_tags_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145030_create_templates_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145031_create_tokens_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145032_create_users_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20190912145033_create_userstubs_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20191106102104_saml-log-indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20191107191318_saml-indentifiers-index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200110183327_brandVarationIdIndex.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200120163346_atlas_recommended_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200210084301_remove-duplicate-deleted-things.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200210121103_uniqueify-deletedthings-indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200302143624_users_affiliationUnchecked_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200522145727_dropProjectImportFailures.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200522145741_dropProjectImportBatchRecords.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200608213302_saml-cache-indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20200729120824_update_subscriptions_manager_ids_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20201106094956_active-projects-index-with-id.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210310111225_create_deletedFiles_projectId_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210407085118_token-expiry-with-ttl-index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210408123210_create_docs_project_id_deleted_deletedAt_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210721081758_create_history_display_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210726083523_convert_confirmedAt_strings_to_dates.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210726083523_convert_split_tests_assigned_at_strings_to_dates.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210727123346_ce_sp_backfill_deleted_files.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210727150530_ce_sp_backfill_deleted_docs.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210728115327_ce_sp_backfill_dummy_doc_meta.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20210924140139_splittests-name-index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220105123000_cleanup_unused_collections.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220105130000_fix_saml_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220222095146_split_tests_analytics_enabled.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220811111800_create_dropboxEntities_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220815105500_create_dropboxProjects_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220817120900_create_dropboxProjects_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220825160708_recreate_dropboxEntities.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220826104236_disable_alpha_beta_program.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220830140459_create_index_user_labsProgram_labsProgramGalileo.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220913105500_create_auditLog_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220913125500_migrate_auditLog_to_collections.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20220929193200_add_auditLog_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20221111111111_ce_sp_convert_archived_state.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20221122191857_project_history_chunks_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230110140452_rename_recurly_cached_status.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230124092607_clear_old_2fa_setup.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230207134844_group_invite_emails_to_lowercase.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230217205311_fix_deleted_history_chunks_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230315170739_back_fill_doc_rev.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230405190240_oauth_refresh_tokens_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230406125632_oauth_tokens_ttl.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230426095212_personal_oauth_tokens_user_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230428154643_history_chunks_garbage_collection_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230502180757_server_pro_oauth_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230512100122_ensure_history_migration.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230616153016_user_features_updated_at_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230817081910_back_fill_gitBridge_feature_server_pro.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20230928092537_backfill_subscriptions_managed_users_feature_flag.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231016101457_drop_history_display_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231025094810_sso_config_certificates_array.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231030160030_managed_users_enabled.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231031164732_drop_redundant_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231101153447_partial_last_opened_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231101191643_drop_unused_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231101204352_drop_unused_saas_indexes.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231105000000_move_doc_versions_from_docops_to_docs.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231110192205_drop_docops_collection.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20231113173237_tokens_user_id_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240115172206_oauth_issuer_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240220130452_remove_deleted_users_from_token_access_refs.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240524135408_add_token_hmac_project_invite_tokens.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240531082910_remove_project_invite_tokens.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240618125145_cleanup_user_features_templates.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240625101055_add_ai_policy_to_group_policy.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
202407131109055_admin_reversed_hostname.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240730155209_create_project_imageName_index.js b69ff9417a Merge pull request #20731 from overleaf/revert-20480-ls-convert-migration-scripts-to-esm 2 anni fa
20240923131936_create_user_last_active_index.js 3ff142d478 [web] Expose metric for active users in SP (#20130) 2 anni fa
README.md e120f61a9a Merge pull request #15921 from overleaf/jpa-migrations-via-rake 2 anni fa

README.md

Migrations

Migrations for the app environment live in this folder, and use the East migration framework.

We have a npm script which wraps east: npm run migrations -- ...

For example:

npm run migrations -- list -t 'server-ce'

For SAAS, use the rake tasks for staging/production

rake deploy:migrations:list[staging]

Environments and Tags

Overleaf is deployed in three different environments:

  • server-ce: community edition installations (the base system)
  • server-pro: server pro installations
  • saas: the production overleaf site

All migrations are tagged with the environments they should run in. For example, a migration that should run in every environment would be tagged with ['server-ce', 'server-pro', 'saas'].

When invoking east, we specify the relevant tags with the -t or --tags flag. Our adapter will refuse to run if this flag is not set.

Creating new migrations

To create a new migration, run:

npm run migrations -- create <migration name>

This command will create a new migration file in the migrations folder, based on a template. The template provides migrate and rollback methods, which are run by the east binary when running the migrations. rollback should undo the changes made in migrate.

Running scripts as a migration

To run a script in a migration file, look at migrations/20190730093801_script_example.js, which runs the script scripts/example/script_for_migration.js. This uses a method where the script can be run standalone via node, or through the migrations' mechanism.

Running migrations

To run all migrations in a server-ce environment:

npm run migrations -- migrate -t 'server-ce'
# Note: They are run by default on container start.

To run all migrations in a SAAS environment use the rake task:

# list first and check that only your newly added migration is shown. If not, ask in the dev channel for help.
rake deploy:migrations:list[staging]
# After confirming the listing, run the migrations
rake deploy:migrations[staging]

To run all migrations in the dev-env:

make services/web/migrate
# Note: "make install" will pick them up as well

The -t flag also works with other east commands like rollback, and list.

For other options, or for information on how to roll migrations back, take a look at the East documentation.

Tips

Try to use Mongo directly via the db object instead of using Mongoose models. Migrations will need to run in the future, and model files can change. It's unwise to make the migrations depend on code which might change.

Note: Running east rollback without any arguments rolls back all migrations, which you may well not want.