kuyashi
(David O'Dea)
September 16, 2016, 4:57pm
1
I want to move my discourse instance to a new server, however when I download a backup form current server and try to upload to new server, I get the following:
There has been an error while uploading ‘cs-uni-2016-09-16-155132-v20160905092148.tar.gz’: The backup filename contains invalid characters. Valid characters are a-z 0-9 . - _.
So I changed the backup filename to something that was accepted, is that why I am getting:
EXCEPTION: Migration version is missing from the filename.
Why doesn’t discourse accept uploads for restore ?
1 Like
cpradio
(cpradio)
September 16, 2016, 5:22pm
2
I maybe wrong, but it may be related to this
https://github.com/discourse/discourse/blob/512922d7767c84615b8b77089e34ede244a88c7f/app/controllers/admin/backups_controller.rb#L122
From this commit:
https://github.com/discourse/discourse/commit/512922d7767c84615b8b77089e34ede244a88c7f
And the fact that -
may need to be escaped like .
is. Alternatively, if you list -
at the very end, it should work too but being between two characters, it thinks it is trying to define a range.
So either
/^[a-zA-Z0-9\.\-_]+$/
or /^[a-zA-Z0-9\._-]+$/
should work
Thoughts @tgxworld ?
Also, I think it would be better to make the test, use ‘test_Site-0123456789.tar.gz’ so that it utilizes all of the characters you are permitting.
https://github.com/discourse/discourse/blob/512922d7767c84615b8b77089e34ede244a88c7f/spec/controllers/admin/backups_controller_spec.rb#L212
3 Likes
kuyashi
(David O'Dea)
September 16, 2016, 5:36pm
3
@cpradio thanks for the input.
what would I change this backup filename to in order to have it be accepted: ?
cs-uni-2016-09-16-172539-v20160905092148.tar.gz
cpradio
(cpradio)
September 16, 2016, 5:38pm
4
You wouldn’t. Core needs to adjust its logic. Then you’d get latest and it will upload just fine.
One thing you can try, and this is purely a guess to get you around the current issue, is replace the ‘-’ (a hyphen) with ‘_’ (an underscore).
I can’t promise that will work, but it “might”.
Edit:
I’ve got a meeting to get to, and then heading home. If I have time tonight and it is still unresolved, I’ll submit the PR to fix it.
3 Likes
pfaffman
(Jay Pfaffman)
September 16, 2016, 6:40pm
6
The short-term answer is to edit app.yml
and replace
version: stable
with
version: f7a335a64e7146166d5fdaedcfee816997f2822d
That’ll put you back to 1.6.1 and you’re good to go!
You’ll need to remember to change it back to tests-passed
after it gets bumpted to 1.6.3, however!
Oh! If you were on tests-passed
wait for me to edit this. . .,
version: b3c65620f341df95c58043dd5f120f5f43e62e3e
should take you back to beta3.
kuyashi
(David O'Dea)
September 16, 2016, 7:07pm
7
Thanks @pfaffman , but i tried that and it fails with the following in the logs:
Job exception: undefined method `every' for Jobs::MigrateUploadScheme:Class
/var/www/discourse/lib/scheduler/schedule_info.rb:79:in `schedule!'
/var/www/discourse/lib/scheduler/manager.rb:270:in `schedule_next_job'
/var/www/discourse/lib/scheduler/manager.rb:248:in `block in tick'
/var/www/discourse/lib/scheduler/manager.rb:295:in `block in lock'
/var/www/discourse/lib/distributed_mutex.rb:21:in `synchronize'
/var/www/discourse/lib/scheduler/manager.rb:294:in `lock'
/var/www/discourse/lib/scheduler/manager.rb:247:in `tick'
/var/www/discourse/config/initializers/100-sidekiq.rb:35:in `block (2 levels) in <top (required)>
pfaffman
(Jay Pfaffman)
September 16, 2016, 7:08pm
8
That’s what you got when you did a ./launcher rebuild app
? (I left out that step).
pfaffman
(Jay Pfaffman)
September 16, 2016, 7:13pm
10
Well, darn. I’m operating at the edge of my expertise, but the
version: f7a335a64e7146166d5fdaedcfee816997f2822d
worked for me when I did my rebuild on stable
I suppose you could try
version: f63a797e390ed79b643cfad42837a67068549fbf
which is the last checkin before the filename validation one.
1 Like
kuyashi
(David O'Dea)
September 16, 2016, 7:16pm
11
Much appreciated! i’ll try your last advice and let you know, thanks.
The following worked as a fixed pending the PR merge from @cpradio
1 Like
cpradio
(cpradio)
September 16, 2016, 7:22pm
12
5 Likes
kuyashi
(David O'Dea)
September 16, 2016, 7:23pm
13
Thank you kindly @cpradio