Commit Graph

54 Commits

Author SHA1 Message Date
Gerhard Schlager 4d719725c8
FEATURE: Allow overriding the backup location when restoring via CLI (#12015)
You can use `discourse restore --location=local FILENAME` if you want to restore a backup that is stored locally even though the `backup_location` has the value `s3`.
2021-02-09 16:02:44 +01:00
Gerhard Schlager e474cda321 REFACTOR: Restoring of backups and migration of uploads to S3 2020-01-14 11:41:35 +01:00
Krzysztof Kotlarek f34a0141c7 FIX: Correct path to ImportExport module (#8227)
During the move from Classic autoloader to Zeitwerk import_export module was moved to correct file name convention.
427d54b2b0 (diff-d896ec33b95afb7fae9f8bfe73d0580b)

Problem is that export/import is still using old path to require that module

Meta: https://meta.discourse.org/t/topic-and-category-export-import/38930/40
2019-10-23 17:27:14 +11:00
Krzysztof Kotlarek 427d54b2b0 DEV: Upgrading Discourse to Zeitwerk (#8098)
Zeitwerk simplifies working with dependencies in dev and makes it easier reloading class chains. 

We no longer need to use Rails "require_dependency" anywhere and instead can just use standard 
Ruby patterns to require files.

This is a far reaching change and we expect some followups here.
2019-10-02 14:01:53 +10:00
Régis Hanol 19dda59932 FIX: add back verbose option to DbHelper.remap 2019-07-31 17:30:08 +02:00
Régis Hanol 89fce2ce71 DEV: remove duplicate Remap class and use DbHelper.remap instead
Follow-up to 9cd3f96dee
2019-07-29 18:43:40 +02:00
Sam Saffron 30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
Gerhard Schlager 78f8114989 FEATURE: Allow discourse script to skip disabling of emails after restore 2019-03-07 21:49:33 +01:00
Gerhard Schlager cc27d61f9e FIX: discourse script didn't allow backups with paths anymore
This restores the previous functionality. The script now allows the following options:

* `discourse backup` (uses the system generated filename)
* `discourse backup <some_filename>` (uses the provided filename)
* `discourse backup </some/path/to/filename>` (moves the backup to the provided path with the given filename)

Remote backup stores do not support the last option.
Some file extensions (like `.tar.gz`) are automatically removed from the provided filename.
2018-10-17 18:33:44 +02:00
Guo Xiang Tan 84d4c81a26 FEATURE: Support backup uploads/downloads directly to/from S3.
This reverts commit 3c59106bac.
2018-10-15 09:43:31 +08:00
Guo Xiang Tan 3c59106bac Revert "FEATURE: Support backup uploads/downloads directly to/from S3."
This reverts commit c29a4dddc1.

We're doing a beta bump soon so un-revert this after that is done.
2018-10-11 11:08:23 +08:00
Gerhard Schlager c29a4dddc1 FEATURE: Support backup uploads/downloads directly to/from S3. 2018-10-11 10:38:43 +08:00
Guo Xiang Tan 8dc1463ab3 Enable `Lint/ShadowingOuterLocalVariable` for Rubocop. 2018-09-04 10:16:42 +08:00
Neil Lalonde ac3b0f0164 REFACTOR: move remap out of script into a class 2018-08-15 12:37:52 -04:00
OsamaSayegh 91b73e0c2d FIX: remap shouldn't fail silently when an error occurs 2018-06-19 14:49:43 +10:00
Gerhard Schlager 27d94b3a0b Remove unused option from discourse script 2017-11-23 15:22:00 +01:00
Vinoth Kanan d9823f69c6 FEATURE: Option to export multiple categories using export_category method 2017-11-11 19:11:16 +05:30
Vinoth Kannan a00af4d85a FEATURE: Rake task to export and import category structure 2017-11-01 17:17:05 +05:30
Jay Pfaffman e61edfd13a UX: discourse restore -- sort by date 2017-10-05 15:20:14 -07:00
Jay Pfaffman ab12c40e76 Tweak error messages for restore 2017-10-03 14:09:32 -07:00
Jay Pfaffman 657e5a8633 Suggest running discourse not script/discourse (#5089)
Having `discourse restore` offer copy/paste of backups is awesome, but doesn't work (rails won't load) if you call script/discourse.
2017-08-28 12:59:56 -04:00
Guo Xiang Tan 5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
Ryan Mulligan 6c2f66124f regex remapping: update usage and add help description.
Here is a shell session showing what the new documenation looks like:

vagrant@discourse:~/vagrant$ bundle exec ruby ./script/discourse remap
ERROR: "discourse remap" was called with no arguments
Usage: "discourse remap [--global,--regex] FROM TO"

vagrant@discourse:~/vagrant$ bundle exec ruby ./script/discourse help remap
Usage:
  discourse remap [--global,--regex] FROM TO

Options:
      [--global], [--no-global]
      [--regex], [--no-regex]
  v, [--verbose=VERBOSE]

Description:
  Replace a string sequence FROM with TO across all tables.

  With --global option, the remapping is run on ***ALL*** databases. Instead of just running on the current database, run on every database on this machine. This option is useful for multi-site setups.

  With --regex option, use PostgreSQL function regexp_replace to do the remapping. Enabling this interprets FROM as a PostgreSQL regular expression. TO can contain references to captures in the FROM match. See the "Regular Expression
  Details" section and "regexp_replace" documentation in the PostgreSQL manual for more details.

  Examples:

  discourse remap talk.foo.com talk.bar.com # renaming a Discourse domain name

  discourse remap --regex "[/?color(=[^]]*)*]" "" # removing "color" bbcodes
2017-01-30 14:27:45 -08:00
Ryan Mulligan e63faffdb2 Revert "Revert "FEATURE: make discourse remap optionally do regex_replace (#4367)""
This reverts commit 277e7383f3.
2017-01-19 09:33:49 -08:00
Robin Ward 277e7383f3 Revert "FEATURE: make discourse remap optionally do regex_replace (#4367)"
This reverts commit f8dda198bd, reversing
changes made to 01ced67ab3.
2016-08-08 17:05:22 -04:00
Robin Ward f8dda198bd FEATURE: make discourse remap optionally do regex_replace (#4367)
This adds a --regex option to discourse remap to use the regexp_replace
feature in PostgreSQL. Example usage:

discourse remap --regex "\[\/?color(=[^\]]*)*]" ""

removes all the "color" bbcodes.

Also, this commit fixes the --global option, which did not work because
of how Thor processes the options.
2016-08-08 14:30:02 -04:00
Guo Xiang Tan 02d63d5bc6 FIX: Backup script with custom filename needs to include version number. 2016-08-08 09:33:50 +08:00
Sam 31c0ce3dac Revert "FEATURE: make discourse remap optionally do regex_replace" 2016-08-02 08:38:15 +10:00
Ryan Mulligan 2a257190e7 FEATURE: make discourse remap optionally do regex_replace (#4116)
This adds a --regex option to discourse remap to use the regexp_replace
feature in PostgreSQL. Example usage:

discourse remap --regex "\[\/?color(=[^\]]*)*]" ""

removes all the "color" bbcodes.

Also, this commit fixes the --global option, which did not work because
of how Thor processes the options.
2016-07-22 10:08:41 +02:00
Robin Ward c2b769bd95 Provide hints about which files can be restored 2016-07-12 12:31:01 -04:00
Ryan Mulligan 303a02b901 FEATURE: make discourse remap optionally do regex_replace
This adds a --regex option to discourse remap to use the regexp_replace
feature in PostgreSQL. Example usage:

discourse remap --regex "\[\/?color(=[^\]]*)*]" ""

removes all the "color" bbcodes.

Also, this commit fixes the --global option, which did not work because
of how Thor processes the options.
2016-03-24 11:44:14 -07:00
Erik Bernhardson 48cb386d58 Take filename to write to as optional parameter to export_category
My discourse instance will be making regular automated public backups
of specific categories. It's preferred to be able to directly control
the path and filename of the output, rather than letting discourse
choose for me. This was already mostly supported, a filename parameter
just needed to be passed through the cli app.
2016-02-12 22:02:29 -08:00
Neil Lalonde 58610d15a1 FEATURE: export/import topics and categories from one Discourse site to another. (Early-access alpha greenlight. More to do...) 2016-01-26 19:57:54 -05:00
Régis Hanol 96c23d51a2 FIX: don't break the message bus when restoring a backup 2015-08-27 20:02:13 +02:00
Sam 78bd4508d1 Add multisite support to remap task 2015-07-23 14:39:55 +10:00
Régis Hanol 189cb3ff12 FEATURE: move migrate_to_new_scheme into a background job
- new hidden site setting 'migrate_to_new_scheme' (defaults to false)
- new rake tasks to toggle migration to new scheme
- FIX: migrate_to_new_scheme also works with CDN
- PERF: improve perf of the DbHelper.remap method
- REFACTOR: UrlHelper is now a class
2015-06-12 12:07:57 +02:00
Régis Hanol 5504622c1b rename export/import in favor of backup/restore for better consistency 2014-10-10 20:04:07 +02:00
Robin Ward f2cca140b4 FIX: Don't break out of remap action if there is a DB error. Display it
and continue.
2014-09-08 14:21:46 -04:00
Régis Hanol 925a15c9aa FIX: proper exit status code for backup/restore scripts 2014-08-04 17:55:09 +02:00
Neil Lalonde 78ea81afb6 Revert "Pretend to allow full path to backup files". This breaks our jobs that backup to a full path. 2014-07-22 10:08:59 -04:00
riking 2ad2dee0e9 Pretend to allow full path to backup files 2014-07-15 10:23:24 -07:00
Sam a5ad2411ef FIX: bypass views 2014-07-14 08:44:26 +10:00
Robin Ward 5b0d8d5ffd Trivial typo 2014-03-17 13:13:05 -04:00
riking bb634bd4f5 Add request_refresh to script/discourse 2014-03-06 20:26:34 -08:00
Régis Hanol 4c941495e5 FEATURE: add readonly mode CLI 2014-02-21 17:10:53 +01:00
Régis Hanol 0caee99e8b REFACTOR: moved the export.rake task into script/discourse script 2014-02-21 16:17:00 +01:00
Régis Hanol 438f97d8b0 BUGFIX: backup/restore rake tasks weren't working 2014-02-19 15:25:31 +01:00
Régis Hanol 50273ba815 rename site setting to 2014-02-13 13:31:14 -08:00
Régis Hanol d92c6ece63 fix script/discourse script 2014-02-13 13:31:13 -08:00
Sam 8a15e89d9d better var names 2014-01-31 16:37:05 +11:00