Saltar al contenido

¿Cómo ejecuto las migraciones de CodeIgniter?

Traemos la mejor respuesta que encontramos por todo internet. Deseamos que te sea de utilidad y si quieres aportar algo que nos pueda ayudar a perfeccionar nuestra información hazlo con libertad.

Solución:

Usando estas páginas como referencias: al ejecutar a través de la CLI y la clase de migración, puede restringir el acceso a su controlador de migración a la línea de comando con algo similar a estas líneas (application/controllers/migrate.php):

input->is_cli_request() 
      or exit("Execute via command line: php index.php migrate");

    $this->load->library('migration');
  

  public function index()
  
    if(!$this->migration->latest()) 
    
      show_error($this->migration->error_string());
    
  

luego, para ejecutar su última migración, cd en la raíz del directorio de su proyecto y ejecute:

php index.php migrate

pero cuando intente acceder a través del servidor web domain.com/migrate, verá el texto en el script anterior.

No estoy seguro de que esta sea la forma correcta de hacerlo, pero funciona para mí.

Creé un controlador llamado migrate(controladores/migrar.php).

load->library("migration");

      if(!$this->migration->version($version))
          show_error($this->migration->error_string());
         
    

Luego, desde el navegador llamaré a esta url para ejecutar index acción en migrate controlador
P.ej : http://localhost/index.php/migrate/index/1

También puede ejecutar alguna versión para migraciones descendentes o ascendentes:

if(!defined('BASEPATH')) exit('No direct script access allowed');
class Migrate extends CI_Controller

    public function __construct()
    
        parent::__construct();
        $this->load->library('migration');
    

     public function version($version)
     
         if($this->input->is_cli_request())
         
            $migration = $this->migration->version($version);
            if(!$migration)
            
                echo $this->migration->error_string();
            
            else
            
                echo 'Migration(s) done'.PHP_EOL;
            
        
        else
        
            show_error('You don't have permission for this action');;
        
     
 

Para CLI ejecute este comando php index.php migrate version 5, donde 5 es la versión de la migración. Si la versión es más de la migración actual, la migración hacia arriba, de lo contrario, hacia abajo a la versión ingresada.

Sección de Reseñas y Valoraciones

Recuerda difundir este enunciado si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *