I made the clumsiest mistake. When I went to highlight a migration file's name in my text editor, my finger slipped and I deleted that migration file. The schema already has the migration file's table schema, but how do I restore the file I just deleted? I found this SO post, but it did not help me.
I've been blowing through some work so I did not commit and cannot reclaim the lost file via version control.
Ok this solved my problem. I wrote, git diff, in terminal where was printed the name of the file I deleted: 20151014152222_create_post_categories.rb
I just recreated this file with the appropriate migration code in it. Originally I wanted to rename the table to, posts_categories, so after running rake db migrate, I ran, rake db:migrate:down VERSION=20151014152222, renamed the file and the first argument to, create_table, with :posts_categories.
Then I just ran the migrations again. This obviously brought back the missing file and correctly edited my schema.
Related
Two days ago, I updated the code of my site https://danipani.github.io/,
the index file (index.html) has changed, but other files like https://danipani.github.io/node_modules/#bit/danipani.projects.global.button-3d/index.js don't update. I tried to remove the repository but no luck, everything is like before.
This is my repository:
https://github.com/DaniPani/danipani.github.io
this is the source code not bundled: https://github.com/DaniPani/danipani.github.io-not-bundled
Check your .gitignore file. You might have node_modules in there.
Also, you might wanna see this: https://blog.github.com/2016-11-02-what-s-new-in-github-pages-with-jekyll-3-3/ . & https://blog.github.com/2009-12-29-bypassing-jekyll-on-github-pages/ .
Since Django 1.8 the makemigrations command has a --name, -n option to specify custom name for the created migrations file.
I'd like to know whether it's safe in older versions of Django to create the migrations file with the automatically generated name and then rename the file manually. It seems to work as expected. Are there any potential risks?
This works, with a minor caveat: Django will no longer know that the renamed migration is applied.
So the steps to renaming a migration are:
Rename the file.
Repoint any dependencies to the new file.
If the renamed migration was already applied, apply it again using --fake.
If it's a brand new migration, 2 and 3 won't apply, and it's perfectly fine to rename them.
This is happens in Django every time migrations are squashed. A new file is generated thats contains the class variable replaces, this lists the migration files that are being replaced.
So to rename a file migration file add in the following variable in the Migration class:
replaces = [('app name', 'migration file name'), ]
And everything works like it did before the file change.
I am using Flask-Admin to provide an admin interface for my web app, and so far everything has gone well. However, I am trying to make it so that the .TXT files can be edited right in the browser.
Reading the docs, I have incorporated the line:
editable_extensions = ('txt')
into my FileAdmin class. However, every time I check the box beside the file and press With Selected -> Edit, I get a "Permission Denied" error. On the contrary, the Rename feature works fine, and I can also click the file name to view the contents.
Does anyone have any idea how to solve this problem, or where I should start looking?
Note that I may very well be missing some required code, as the line above is all I have done with regards to the editing functionality.
EDIT: I have now managed to get:
Unexpected error while reading from filename.txt
This file cannot be edited for now.
Never mind, this was fixed in an update. For those curious as to what the issue was, the edit() function in fileadmin.py was opening the file as 'r', rather than 'rb'. This caused the error:
'str' object has no attribute 'decode'
which consequently produced in error in the very end.
I have one problem about filezilla. I accidentally move one folder to wrong directory, so it shows the errors when I view my website.
How can I solve it? Please help me.
Many thanks in advance for your answer.
You cannot undo, but you should understand why that happened and how to prevent that from happening again in the future.
This happened because Filezilla allows Drag-and-drop move functionality on both folders (directories) and files, very dangerous on production servers.
There is actually a feature-request for 11 years now, please add your vote to the list to get this done: https://trac.filezilla-project.org/ticket/2191
In the mean time, please consider using another software that allows the user to set this behavior as an option:
WinSCP: http://winscp.net/eng/docs/screenshots
WS-FTP Pro: https://trac.filezilla-project.org/attachment/ticket/2191/ws_ftp-professional-options.gif
EDIT: Filezilla team responded (sort of) to the feature request and you can block drag and drop in the xml config file. It's better than nothing.
You cannot undo ftp moves. The only way to rectify the problem is to manually move the folder to it's original location.
I suggest you be more careful from next time.
If you don't know where the folder belongs, download the x-cart script package and check where the directory belongs.
Sorry for late, but I am up to date. I get logs from filezilla of moved files.
Status: Renaming '/var/www/html/brb/abc.js' to '/var/www/html/brb/node_modules/abc.js'
Status: /var/www/html/brb/abc.js -> /var/www/html/brb/node_modules/abc.js
Status: Renaming '/var/www/html/brb/xyz.html' to '/var/www/html/brb/node_modules/xyz.html'
Status: /var/www/html/brb/xyz.html -> /var/www/html/brb/node_modules/xyz.html
I write script in js to build command
let x = ['/var/www/html/brb/abc.js -> /var/www/html/brb/node_modules/abc.js',
'/var/www/html/brb/xyz.html -> /var/www/html/brb/node_modules/xyz.html'];
let cmd = [];
x.forEach(p => {
let path = p.split('->');
cmd.push(`mv ${path[1]} ${path[0]}`);
})
console.log(cmd);
Output:
['mv /var/www/html/brb/node_modules/abc.js /var/www/html/brb/abc.js'
'mv /var/www/html/brb/node_modules/xyz.html /var/www/html/brb/xyz.html']
Use any editor like vscode etc and remove string quotes and execute command in server terminal etc
mv /var/www/html/brb/node_modules/abc.js /var/www/html/brb/abc.js
mv /var/www/html/brb/node_modules/xyz.html /var/www/html/brb/xyz.html
A simple answer is,
Copy the folder into the desired location and then delete from the current location where you moved it mistakenly.
Now, what if you overwrite a file.
I just edited a file in local, then downloaded the file from my server into the local, and my all the local updated data is gone. There seems no solution of this, but there may be one possibility, I may be the lucky enough that this is my case.
If you were working on that local file, so most probably it is opened in your browser. Do not refresh it. Copy the content one by one, and update the file again. You can also open developers tools of both old and new page. Compare them line by line and do the job.
I had the same issue and resolved it manually.
The log panel was helpful in this. It is the large panel below the connection form in the top menu.
From that log panel, I was able to figure out all the files which were moved with their current and previous location.
I copied those all log lines and paste them somewhere in notepad and then manually selected all files and move those all at once to their original directory.
Screenshot: The log panel showing last actions
I am trying to add a few new columns to certain tables in Joomla, since i need to migrate these fixes from dev to production i am trying to do this the clean way, updates trough the filesystem.
I have followed a few tutorials concerning this and did the following.
I created the folder updates/sql and put a new sql file in it with my new version (1.5).
I changed the version number in my xml file.
I refreshed my cache in the backend.
Here are the codes I used:
My version:
<version>1.5</version>
The update node:
<update>
<schemas>
<schemapath type="mysql">sql/updates/mysql</schemapath>
<schemapath type="sqlsrv">sql/updates/sqlsrv</schemapath>
<schemapath type="sqlazure">sql/updates/sqlazure</schemapath>
</schemas>
</update>
The sql file:
ALTER TABLE `#__mycomponent` ADD `field` VARCHAR(255);
I tested my query directly against the database and it worked, what am I missing?
Short answer - Joomla!'s DB migration tool only does them after uploading a new component via the Component Manager. It doesn't check for a migration on every $_REQUEST, which is what your question suggests.
Longer Answer
Make sure you run the upgrade via the component manager. Simply over-writing the files doesn't trigger Joomla's migration process. Check the #__schemas table for your component's ID, and it'll have a corresponding database schema version #. If that version hasn't incremented yet, then the migration wasn't applied.
Part of the problem is
I am trying to do this the clean way, updates trough the filesystem
While I agree with you, that would be the clean way: Joomla! wants you to do things the Joomla! way ;-)
Important Note about Joomla! SQL Files
SQL files cannot contain C style comments (# comment here), and must contain comments like this -- comment here Spent a few hours debugging my own code, and had to re-run an upgrade about 25 times to figure out where the database schema migration was failing.
Comments may support the /* Comment */ style syntax, but I have yet to test that as extensively. YMMV.