Pregunta

Estoy probando mi aplicación sobre Heroku (que se f *** ing increíble!) Y yo dado cuenta de que no tengo manera de crear mi usuario root.

Estoy usando Authlogic y rails_authorization_plugin.

¿Hay alguna manera puedo añadir una sección de una de mis archivos de migración para agregar este usuario y asignarle el papel de root? O puedo hacer esto a través de una tarea rake?

Cualquier idea sería apreciada!

¿Fue útil?

Solución

Por supuesto que podría hacerlo a través de una migración, y he visto que como una forma recomendada de añadir los datos de semillas necesarias para la base de datos de una aplicación. Las migraciones son sólo rubí código, por lo que es bastante simple. Se puede utilizar todo el material ActiveRecord que está acostumbrado y hacer algo como:

class AddRootUser < ActiveRecord::Migration
  def self.up
    user = User.create!( :email => '...', :login => 'root', :password => '...' )
  end

  def self.down
    user = User.find_by_login( 'root' )
    user.destroy
  end
end

He dejado de lado cosas que probablemente querrá hacer como el rescate de un fracaso para crear el usuario, etc. Además, no he utilizado AuthLogic así que no sé exactamente cómo funciona su modelo de usuario, pero debe ser capaz de entenderlo desde aquí.

Otro patrón común es tener la migración hacia abajo del todo claro la mesa y tener la migración a llamar a la migración hacia abajo antes de ejecutar. Esto probablemente no es lo que desea en este caso, sin embargo.

Otros consejos

Se puede establecer ya sea una tarea rastrillo para arrancar el usuario (y cualquier otro dato de semillas). Heroku realidad le permite ejecutar tareas rake: http://docs.heroku.com/rake

O, como un, puede crear el usuario a nivel local y cargar su base de datos para el uso de heroku heroku db:push. Docs aquí: http://docs.heroku.com/taps#import-push -to-heroku

Además, sugiero contra un sólo datos de migraciones. Hay incluso un rastrillo de datos de tareas de semillas en los carriles núcleo. Ver la Railscast y este post .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top