Hi,
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
t.timestamps
end
end
def self.down
drop_table :users
end
end
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?