2.8 KiB
OSPOSWEB - respaldo y restauracion
Respaldar una instalacion
su -l root
apt-get install mysql-client
Debemos primero extraer solo la data, puest6o la estructura ya se tiene al instalarse desde cero y el script lo tiene al instalarse:
mysqldump --no-create-info --no-create-db --host=localhost --user=admin ospos > database-respaldo.sql
Esto creara solo sentencias SQL de los datos, con esto tenemos los datos personales de la instalacion
CASO EJEMPLO 1 : clave de admin invalida
Si se perdio la clave de administrador, simplemente se busca la sentencia SQL del usuario admin, y se sustituye por la clave de la otra sentendia SQL orignal al instalar
grep -B 1 admin database.sql
INSERT INTO `ospos_employees` (`username`, `password`, `person_id`, `deleted`, `hash_version`) VALUES
('admin', '$2y$10$vJBSMlD02EC7ENSrKfVQXuvq9tNRHMtcOA8MSK2NYS748HHWm.gcG', 1, 0, 2);
Aqui el valor que nos interesa "tomar" (notese el nombre del script es "database.sql" )
es el de la calve como $2y$10$vJBSMlD02EC7ENSrKfVQXuvq9tNRHMtcOA8MSK2NYS748HHWm.gcG
el
cual es equivalente a "pointofsale", este string se va insertar en el otro script
de respaldo "database-respaldo.sql" .
Despues realizamos una instalacion nueva, pero sin borrar el directorio de uploads,
y despues de instalar, borramos todos los usuarios de la tabla ospos_employees
.
Por ultimo insertamos (despues de modificar el valor) el script modificado en la nueva base de datos y listo.
CASO EJEMPLO 2 : admin no logra acceder modulos
Se realiza el mismo proceso del CASO 1 pero adicional hay que modificar y cambiar los sentencias SQL de permisos para el employee id 1 (admin) o el id que sea admin:
grep -B 6 -A 28 person_id database.sql | grep -A 28 -B 3 grants | grep -A 28 INSERT
INSERT INTO `ospos_grants` (`permission_id`, `person_id`, `menu_group`) VALUES
('reports_customers', 1, 'home'),
('reports_receivings', 1, 'home'),
('reports_items', 1, 'home'),
('reports_inventory', 1, 'home'),
('reports_employees', 1, 'home'),
('reports_suppliers', 1, 'home'),
('reports_sales', 1, 'home'),
('reports_discounts', 1, 'home'),
('reports_taxes', 1, 'home'),
('reports_categories', 1, 'home'),
('reports_payments', 1, 'home'),
('customers', 1, 'home'),
('employees', 1, 'office'),
('giftcards', 1, 'home'),
('items', 1, 'home'),
('item_kits', 1, 'home'),
('messages', 1, 'home'),
('receivings', 1, 'home'),
('reports', 1, 'home'),
('sales', 1, 'home'),
('config', 1, 'office'),
('items_stock', 1, 'home'),
('sales_stock', 1, 'home'),
('receivings_stock', 1, 'home'),
('suppliers', 1, 'home'),
('taxes', 1, 'office'),
('office', 1, 'home'),
('home', 1, 'office');
IMPORTANTE esta tabla tiene muchos registros para un solo id, en este caso el id "1" es admin, si se altero esto, debe realizarse a mano.