Migrations de Mysql à Oracle

Bonjour à tous,
J’utilise Rails/Mysql comme plateforme de développement et Rails/Oracle
en environnement de production.
après quelques mois de dév sous mysql, le moment est venu pour passer en
production … sous Oracle. cette migrations ne se passe pas sans
surprise car entre les problèmes que j’ai rencontré, reste reste un prob
ORM avec Oracle que je n’ai pu résoudre. Voici la description détaillé
du prob que j’ai avec Oracle: Extrait de la bd :

Table User :_____________
id_user |
first_name |
last_name |
login |
password |
id_profile |
_________________________|

Table Profile :__________
id_profile |
name |
_________________________|

et mes Models :
class Profile < ActiveRecord::Base
set_table_name “PROFILE”
set_primary_key “ID_PROFILE”
has_many :user
end

class User < ActiveRecord::Base
set_table_name “user”
set_primary_key “ID_USER”
belongs_to :profile,
:foreign_key => “ID_PROFILE”
end

avec la console rails, j’execute les commandes suivantes :

x = User.find(1)
=> #<User:0x454cf8b4 @attributes={“id_profile”=>1, “first_name”=>“Nom”,
“last_name”=>“Prenom”, “password”=>“test”, “login”=>“login”,
“id_user”=>1}>

Jusqu’ici c’est parfait. mais quand j’essaie d’acceder au profile de
l’utilisateur :

x.profile
=> nil

x.profile.name
NoMethodError: You have a nil object when you didn’t expect it!
The error occured while evaluating nil.name
from (irb):12

Sachant que je n’ai pas eu ce problème avec Mysql, d’où peut venir ce
problème ? Merci pour votre aide.

On 7/3/06, The A. [email protected] wrote:

x.profile
=> nil
x.profile.name

NoMethodError: You have a nil object when you didn’t expect it!
The error occured while evaluating nil.name
from (irb):12

Desactiver la “pluralisation” dans environnement.rb ?

ActiveRecord::Base.pluralize_table_names = false

NoMethodError: You have a nil object when you didn’t expect it!
The error occured while evaluating nil.name
from (irb):12

Desactiver la “pluralisation” dans environnement.rb ?

ActiveRecord::Base.pluralize_table_names = false

si je désactive cette option rails va chercher une table “Profiles” qui
n’existe pas.

          :foreign_key => "ID_PROFILE" **

end

Et en minuscules ? (**)

Mathieu C. wrote:

          :foreign_key => "ID_PROFILE" **

end

Et en minuscules ? (**)

Mr. Mathieu C., vous êtes mon héros !!! cela fait des jours que je
cherche désesperement une solution.
cela a tout de suite marché. merci bcp :slight_smile:

petite question: comme dire à Rails d’ignorer la casse des noms de
colonnes ?

Mr. Mathieu C., vous êtes mon héros !!! cela fait des jours que je
cherche désesperement une solution.
cela a tout de suite marché. merci bcp :slight_smile:

[;-]

Merci, Merci, je vais prendre la grosse tète…

petite question: comme dire à Rails d’ignorer la casse des noms de
colonnes ?

Aucune idée. Je me suis fait pièger une fois et ensuite j’ai écrit
selon les pratiques habituelles Ror càd en minuscules.

Par contre les séquences peuvent s’écrire

set_sequence_name “SQ1_PERSONNE”

Pas sûr qu’il y ait un comportement global sur les SGBD à propos de la
casse sur les noms, donc Ror ne devrait logiquement pas s’en occuper.

Peut être interroger le maintainer de l’adaptateur Active Record
Oracle : [email protected]

Ciao’