Migration - wrong SQL statement is created


I am doing my first steps with RoR and I have the following problem:

I execute my migration file with the following content on a
MySQL-database via Rake:

class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.integer :id t.string :username, :size => 100 t.string :password, :size => 100 t.string :email, :size => 100


def self.down
drop_table :users

I get the following error message by Rake:

>rake db:migrate (in D:/InstantRails/rails_apps/EHA) == 1 CreateUsers: migrating ===================================================rake aborted! -- create_table(:users)
Mysql::Error: #42000You have an error in your SQL syntax; check the

manual that corresponds to your MySQL server version for the right
syntax to use near ‘(11), username varchar(255) DEFAULT NULL,
password varchar(255) DEFAULT NULL’ at line 1: CREATE TABLE users
(id int(11) DEFAULT NULL auto_increment PRIMARY KEY(11), username
varchar(255) DEFAULT NULL, password varchar(255) DEFAULT NULL, email
varchar(255) DEFAULT NULL, created_at datetime DEFAULT NULL,
updated_at datetime DEFAULT NULL) ENGINE=InnoDB

(See full trace by running task with --trace)

The problem is

id int(11) DEFAULT NULL auto_increment PRIMARY KEY(11),

  • behind “PRIMARY KEY” there is a length defined again. If I execute the
    statement without this “(11)” behind “PRIMARY KEY”, it works. How can I
    tell Rails how to create the correct statement?

ID is a special field in rails, the migrations generate the ID field
automatically, you don’t need to declare it within the migration.
Thanks & Regards,
Dhruva S…


  • “Computers are useless. They can only give you answers.”

On Mon, Aug 31, 2009 at 6:37 PM, Xxx Y.

2009/8/31 Xxx Y. [email protected]:

 def self.up
  create_table :users do |t|
   t.integer :id

You don’t need the line for id, rails will add it automatically


Thank you very much for your quick answers!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs