Forum: Ruby on Rails migration with mysql reserved word

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
55cee167cd226c5d0ff08352315f28c9?d=identicon&s=25 evanmwheeler@gmail.com (Guest)
on 2007-03-07 00:32
(Received via mailing list)
I have a column name called 'order' in two of my db tables.
I have just realized that it is causing some problems since 'order' is
a reserved word in mysql.
Unfortunately, trying to run a migration that includes...

rename_column :images_piles, :order, :sequence

...results in a mysql error (see below). Is there anyway way to run a
successful migration that forces mysql to treat 'order' as a column
name?



== ChangeOrderToSequence: migrating
===========================================
-- rename_column(:images_piles, :order, :sequence)
rake aborted!
Mysql::Error: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to
use near 'order sequence int(11)' at line 1: ALTER TABLE images_piles
CHANGE order sequence int(11)
22265d224f74c1122f0e240d5654687a?d=identicon&s=25 Adrian Schmitt (Guest)
on 2007-03-07 01:28
(Received via mailing list)
On 7 Mrz., 00:31, "evanmwhee...@gmail.com" <evanmwhee...@gmail.com>
wrote:
> I have a column name called 'order' in two of my db tables.

I don't know how to do it in rails, but when you have access to a
mysql
command-line-client or phpmyadmin installed there is an easy way.

Just write the query like this:

ALTER TABLE images_piles CHANGE `order` sequence int(11)

Simply put any keyword between backticks and it won't be recognized
as a keyword any more.

Once you changed the name of the column you can do the rest of the
migration with rails.

HTH
Adrian
A2c85dc5ee81b12e3cc0a6522e8d079d?d=identicon&s=25 Chris Hall (au5lander)
on 2007-03-07 13:31
(Received via mailing list)
i've hit this problem before when i had a column named 'group' in my
table.  i looked into the behavior because i noticed that rails,
specifically ActiveRecord, does add backticks some of the time, but
not all the time.

i even went in and forced it to use the reserved word by creating the
table manually from the cl and even though that worked, when i
attempted to add a new record, it blew up because AR wasn't adding
backticks on the insert.

in the end, it was just easier to change the column name.

Chris
This topic is locked and can not be replied to.