Problema con rake db:migrate


#1

Hola amigos,

Tengo un problema que me está volviendo loco.
Estoy tratando de seguir el tutorial de los screencast de Vicen
“Openticket”, hasta ahora teniendo en cuenta que está desarrollado en
2.1 y yo etoy con 2.2, he ido solventando las dificultades que la
diferencia de versiones me plantea (googleando y demás).
Debo decir también que no le planteo la duda a Vicen directamente,
puesto que estoy convencido que lo me ocurre ahora es algo muy general
que nada tiene que ver con el tutorial en concreto. Os cuento:

Voy por el capítulo 4, trabajando con Rest_full_authentication.

  • He podido instalar el plugin, y he generado con migrate los
    controllers, models, views y el migrate.
  • El problema me viene al tratar de hacer el rake db:migrate. Hasta
    ahora funcionaba sin problemas. Pero al tratar de hacer el rake:db
    migrate sobre el último migration (que os pongo aquí abajo), lo
    aborta, porque dice que la tabla tickets ya existe ¿?. Pero si al
    anterior migrate (tickets) este último no debería afectarle, ¿no?

class CreateUsers < ActiveRecord::Migration
def self.up
create_table “users”, :force => true do |t|
t.column :name, :string
t.column :admin, :integer
t.column :login, :string
t.column :email, :string
t.column :crypted_password, :string, :limit => 40
t.column :salt, :string, :limit => 40
t.column :created_at, :datetime
t.column :updated_at, :datetime
t.column :remember_token, :string
t.column :remember_token_expires_at, :datetime
end

  # Creamos dos usuarios iniciales
  User.create(:name => "admin", :admin => 1, :login => "admin",
                    :email => "removed_email_address@domain.invalid", :password => 

“admin”,
:password_confirmation => “admin”)

  User.create(:name => "agent", :admin => 0, :login => "agent",
                    :email => "removed_email_address@domain.invalid", :password => 

“agent”,
:password_confirmation => “agent”)
end

def self.down
drop_table “users”
end
end

Hago:
rake db:migrate

Y me devuelve esto (no entiendo nada):
(in C:/AppServ/www/openticket)
== CreateTickets: migrating

– create_table(:tickets)
rake aborted!
An error has occurred, all later migrations canceled:

Mysql::Error: Table ‘tickets’ already exists: CREATE TABLE tickets
(id int(11) DEFAULT NULL auto_increment PRIMARY KEY, project_id
int(11), user_id int(11), assigned_to int(11), title
varchar(255), description text, closed int(11) DEFAULT 0,
created_at datetime, updated_at datetime) ENGINE=InnoDB

Por cierto, y por si sirve de algo, los nombres de los migrations son,
creo que están bien, es decir que son correlativos en fechas:
20090317091444_create_projects.rb
20090319141853_create_tickets.rb
20090324175744_create_users.rb

Un saludo y gracias de antemano

Fernando V.
Web Designer


#2

Si no tienes datos, que es lo más probable, borra la base de datos y
vuelve
a crearla:
rake db:drop db:create db:migrate

Probablemente hayas ejecutado alguna migración antes de tiempo ya que te
dice que ya existe la tabla.

Si tienes datos, haz copia del contenido, recrea la base de datos y
carga el
volcado anterior.


Guillermo Álvarez

Sent from: Madrid Comunidad de Madrid España.


#3

Asegúrate de estar en la version del schema que crees estar:

$ rake db:version

Si quieres correr la
migración:20090319141853_create_tickets.rb

Pero la tabla ya existe por lo que sea, puedes hacer varias cosas:

  1. comentar todo el método up para que no haga nada pero que corra la
    versión del schema
  2. borrar la tabla a pelo.
  3. invocar directamente al create_tickets.down

script/console

require ‘db/migrate/20090319141853_create_tickets’
CreateTickets.down

Y bueno… un montón más de cosas…

Pero acostúmbrate a que las migraciones no vayan tan suaves como
deberían, muchas veces tendrás que hacer truquitos de estos para salir
del paso.

f.


#4

Buenas:

El problema esta en el rake ha perdido la ultima migración realizada, y
está intentando ejecutarla. Esto mismo me paso a mí pasando de un
entorno de desarrollo a otro de producción. Cada uno guarda una tabla
llamada “schema_migrations” en la cual se guardan las migraciones
realizadas. Verás como en esa tabla no esta la migración de los tickets,
la pones y ya lo tienes en marcha de nuevo.

Un saludo

ARA


#5

Muchas gracias a todos.

Efectivamente había perdido un rake, concretamente el de tickets que
en lugar de 20090319141853, en la base de datos ponía otro número
totalmente distinto.

Y por lo me me decís empezaré a tener en cuenta que rake db:xxxx a
veces hace de las suyas…
Así que la próxima vez que tenga un problema con rake, lo primero que
miraré será la tabla schema_migrations.
Supongo que ahora que lo pienso es algo obvio, y debería haber
empezado por ahí, pero ya me disculparéis, es que soy un pobre
diseñador metido a estos líos de la programación (por gusto claro)…
:slight_smile:

Lo dicho, muchas gracias

El día 24 de marzo de 2009 21:42, Agustin R.
removed_email_address@domain.invalid
escribió:>

ARA

Posted via http://www.ruby-forum.com/.


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es


Fernando V.
Web Designer
http://www.fernandoval.com


#6

Si no es mucha molestia Fernando, podrías decirme donde conseguir los
capitulos 4 y 6,
estuve indagando en el blog de Vicent http://www.vicentgozalbes.com/
y encontre los capitulos 1-3, 5, 7-12.

Te estaria muy agradecido.

El 24/03/2009, a las 04:29 p.m., Fernando
escribió:

ezaré a tener en cuenta que rake db:xxxx a


#7

Pues no lo recuerdo, pero me costó bastante encontrarlos.
Mañana si eso los subo a yousendit y te paso el enlace…

El día 25 de marzo de 2009 0:17, Efrén José Fuentes R.
removed_email_address@domain.invalid
escribió:>> Así que la próxima vez que tenga un problema con rake, lo primero que

miraré será la tabla schema_migrations.
Supongo que ahora que lo pienso es algo obvio, y debería haber
empezado por ahí, pero ya me discul


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es


Fernando V.
Web Designer
http://www.fernandoval.com


#8

podrias subir todo el curso ya que estamos!!!

2009/3/24 Efrén José Fuentes R. removed_email_address@domain.invalid:

Así que la próxima vez que tenga un problema con rake, lo primero que
miraré será la tabla schema_migrations.
Supongo que ahora que lo pienso es algo obvio, y debería haber
empezado por ahí, pero ya me discul


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es



J. Martin Fernandez Szutner
removed_email_address@domain.invalid [main address]
móvil: ++521(662)224.02.81
msn: removed_email_address@domain.invalid
skype: martinszutner


This e-mail is confidential and/or may contain privileged information.
If you are not the addressee or authorized to receive this for the
addressee, you must not use, copy, disclose, or take any action based
on this message or any
other informat ion herein, please advise the sender immediately by
reply this e-mail and delete this e-mail and its attachments.


#9

Hola Vicen,

La verdad es que aunque estan algo desfasados, (son para la
versión1.2), me estan gustando mucho cómo entrenamiento REST. Además con
algunos apaños y adaptaciones voy tirando para adelante con
Openticket.
y así de paso espabilo un poco a resolver problemas. Todo ayuda.

Y respecto a conseguir acceder a ellos, la verdad es que está un poco
difícil, ya que tu mefisto da una pantalla de error cuando te pones a
buscarlos. ¿Podrías subirlos a otro sitio?, ya que cómo ves siguen
triunfando.

Si estás muy liado, dimelo y los subo yo en Rapidshare y lo publico
aqui, e la lista ror.

Por cierto, soy arromnido (Fernando V.), el mismo de tu estupendo
mientrenamiento.com”.

Un saludo.

El día 25 de marzo de 2009 11:56, Vicent G.
removed_email_address@domain.invalid
escribió:> _______________________________________________

Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es


Fernando V.
Web Designer
http://www.fernandoval.com


#10

Hola,
siento no haber leído este post antes, los capítulos ahora están un poco
desfasados, aunque alguna idea se puede coger de ellos. Para cualquier
problemilla, podéis contactar directamente conmigo en vigosan @
gmail.com

Un saludo,
Vicent


#11

Anda Fernando,
que alegría y que pequeño el mundo =)

He puesto los enlaces de rapidshare en este otro hilo:

http://www.ruby-forum.com/topic/182448#new

Si tienes dudas ya conoces mi correo, te puedo ayudar en todo lo que
necesites.

Un saludo.


#12

Muchas gracias Vicen, la verdad es que tampoco quería darte mucho la
vara, ya que con mientrenamiento.com andas ya bastante liado, pero
gracias sí me veo atascado en algún momento, te doy un toque.
Que por cierto, la serie de screencast está genial, y la aplicación al
final queda muy chula.
¿Has pensado en continuar con ella?

Yo estaba pensando cuando llegue al 12, adaptarla a las necesidades de
la empresa donde curro, enfocándola sobre todo al tema SCRUM, con los
sprints y las iteraciones y demás. Luego igual le añado un gestor de
archivos y tal…
Pero poco a poco, que de momento no tengo demasiado tiempo libre…

Un abrazo.

El día 25 de marzo de 2009 14:54, Vicent G.
removed_email_address@domain.invalid
escribió:> Un saludo.


Posted via http://www.ruby-forum.com/.


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es


Fernando V.
Web Designer
http://www.fernandoval.com


#13

2009/3/25 Fernando removed_email_address@domain.invalid

archivos y tal…
Pero poco a poco, que de momento no tengo demasiado tiempo libre…

Un abrazo.

Creo que esto se está poniendo un poco personal para la lista :wink:


#14

Si te parece, lo mejor sería crear un proyecto en Github donde
pudiéramos colaborar, mi usuario es vigosan =)


#15

Perdonad amigos,

No me di cuenta que a la vez que le respondía a Vicen en privado,
estaba respondiendo a la lista… :frowning:

Yo por mi parte doy por cerrado el hilo.

Muchas gracias a todos por el interés mostrado y por la gran ayuda que
me habéis prestado.

2009/3/25 Manuel González Noriega removed_email_address@domain.invalid:


Manuel,
http://simplelogica.net + http://www.logicola.net/


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es


Fernando V.
Web Designer
http://www.fernandoval.com