Forum: Rails France Migration Rake : primary key(11) fait bugger la r equête.

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.
047a4fc673336a70a6b58338bc6d677d?d=identicon&s=25 Michel Belleville (Guest)
on 2007-06-24 23:34
(Received via mailing list)
Alors, j'ai préparé une migration rake avec (entre autres) la table :

    create_table :player  do |t|
      t.column :id,              :integer
      t.column :login,           :string,    :null => false
      t.column :password,        :string,    :null => false, :limit =>
32
      t.column :email,           :string,    :null => false
      t.column :joined,          :datetime
      t.column :lastup,          :timestamp
      t.column :online,          :boolean
    end

Je lance la migration, après quelques corrections dans ma configuration,
je
bloque sur :

== RubyThud: migrating
========================================================
-- create_table(:player)
rake aborted!
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), `login` varchar(255) NOT NULL, `password` varchar(32) NOT
NULL,
`email` va' at line 1: CREATE TABLE player (`id` int(11) DEFAULT NULL
auto_increment PRIMARY KEY(11), `login` varchar(255) NOT NULL,
`password`
varchar(32) NOT NULL, `email` varchar(255) NOT NULL, `joined` datetime
DEFAULT NULL, `lastup` datetime DEFAULT NULL, `online` tinyint(1)
DEFAULT
NULL) ENGINE=InnoDB

Et je me demande pourquoi il y a un "PRIMARY KEY(11)" dans la requête.
Normalement primary key se suffit à lui-même en mysql.

Quelqu'un sait ? C'est un bug de rake ? Si oui il y a eu une correction
?

--
Michel Belleville
2fd0206c71a1b22a9cc6293f38537461?d=identicon&s=25 Cyril Mougel (Guest)
on 2007-06-24 23:49
(Received via mailing list)
On 6/24/07, Michel Belleville <michel.belleville@gmail.com> wrote:
>     end
>

La colonne id est inutile. En effet, elle est généré automatiquement
lors d'un create_table dans une migration

--
Cyril Mougel
047a4fc673336a70a6b58338bc6d677d?d=identicon&s=25 Michel Belleville (Guest)
on 2007-06-24 23:51
(Received via mailing list)
Ok, merci. J'essaye sans.

On 6/24/07, Cyril Mougel <cyril.mougel@gmail.com> wrote:
> >       t.column :joined,          :datetime
>
> >
>


--
Michel Belleville
047a4fc673336a70a6b58338bc6d677d?d=identicon&s=25 Michel Belleville (Guest)
on 2007-06-24 23:53
(Received via mailing list)
Ca marche. Merci encore.

On 6/24/07, Michel Belleville <michel.belleville@gmail.com> wrote:
> > >       t.column :login,           :string,    :null => false
> > lors d'un create_table dans une migration
> >
> > --
> > Cyril Mougel
> >
> > > >
> >
>
>
> --
> Michel Belleville




--
Michel Belleville
13ea48f056b19349027d2f4a6921a46a?d=identicon&s=25 Jean-François (Guest)
on 2007-06-25 00:07
(Received via mailing list)
Michel :
> Je lance la migration, après quelques corrections dans ma configuration, je
> auto_increment PRIMARY KEY(11),
create_table va te créer automatiquement une clé primaire id
sauf si tu lui spécifie de ne pas le faire (:id => false). Or
tu as également déclaré une colonne id.

Rails va te générer le `id` int(11) DEFAULT NULL auto_increment PRIMARY
KEY
ta déclaration supplémentaire va rajouter le (11). D'où la belle
erreur de syntaxe MySQL.

> Quelqu'un sait ? C'est un bug de rake ? Si oui il y a eu une correction ?

D'autre part, si tu peux/souhaites suivre les conventions de
Rails, le nom de ta table sera 'players'.

    -- Jean-François.

--
À la renverse.
047a4fc673336a70a6b58338bc6d677d?d=identicon&s=25 Michel Belleville (Guest)
on 2007-06-25 00:10
(Received via mailing list)
C'est justement ce que je souhaite. Merci beaucoup.

On 6/25/07, Jean-François <jf.web3@gmail.com> wrote:
> >       t.column :online,          :boolean
> > Mysql::Error: #42000You have an error in your SQL syntax; check the
> tu as également déclaré une colonne id.
> Rails, le nom de ta table sera 'players'.
>
>     -- Jean-François.
>
> --
> À la renverse.
>
> >
>


--
Michel Belleville
This topic is locked and can not be replied to.