Import data from Dspace 6.x to Dspace 7.x by José M. Ravasi, 03/03/2023
Migrating data from Dsapace 6.x to Dspace 7.2.1 On the server where Dspace7 is installed and in my case with debian 11; using terminal. 1- Test that Dspace 7.x is working ok both the backend and the frontend. 2- Stop BackEnd (tomcat9) 3- and Front End 4- Deletion of the DB that had been broken by previous tests, as in the case that the administrator user had been created. $sudo su postgres If I do dropdb dspace it returns me that there are connections, so I must know what PID or connections there are and then stop those connections to be able to delete the db. To do this, I enter psql, find out, stop, go to postgres, do dropdb and then recreate the database. The steps are: $ psql -d dspace $ SELECT *FROM pg_stat_activity WHERE datname='dspace'; It returns a table with the existing connections to the db=dspace, I must write down the PID numbers. To stop active connections; Write down the PID numbers that appear when executing the previous command. $SELECT pg_terminate_backend(PID number) FROM pg_stat_activity WHERE datname='dspace'; repeat for each PID. $\q to go back to postgres and kill the database. postgres@devdspace:/home/dspace$ dropdb dspace Now the database must be created again with all its characteristics postgres@devdspace:/home/dspace$ createdb dspace -E UNICODE; Enter as user dspace with the command postgres@devdspace:/home/dspace$ psql -d dspace Make dspace user db owner dspace=# ALTER DATABASE dspace OWNER TO dspace; ALTER DATABASE Create the pgcrypto extension for the db dspace=# CREATE EXTENSION pgcrypto; CREATE EXTENSION give privileges dspace=# GRANT ALL PRIVILEGES ON DATABASE dspace TO dspace; GRANT Assign password to the db; That password is the one we use in the local.cfg to access the database (it must be the same as the one defined in the BackEnd in the local.cfg for there to be a connection to the database). dspace=# ALTER ROLE dspace WITH PASSWORD '123456'; ALTER ROLE With the \l command, show the databases and their owners. We exit to postgres with \q dspace=# \q and then we exit postgres with exit postgres@devdspace:/home/dspace$exit 5- Copy/dump the BD on the machine that has Dspace 6.x. In my case I did it in postgres 9.6 and the data file in format=custom with the following command: sudo pg_dump --format=custom -U dspace -W -h localhost dspace > mybase63 6- Restore data dump from dspace 6.x to Dspace 7. On the server running Dspace 7.x restore from within postgres13 with the command: pg_restore --username=postgres --host=localhost --port=5432 --dbname=dspace -v mibase63 When it asks for a password, it is that of the user postgres=******** 7- Copy the /assetstore folder from the dspace6.3 server to the new Dspace7 server 8- Run as Tim says ./dspace database migrate ignored 9- Restart Tomcat for the BackEnd and FrontEnd (pm2 start dspace-ui.json) 10- Then run ./dspace index-discovery -b 11- In the browser http://ipdemiservidor:4000/home And there were the logs of my dspace63 in DSpace 7!!!!!!!!!!! Importar datos desde Dspace 6.x a Dspace 7.x por José M. Ravasi 03/03/2023 Migrar los datos desde Dsapace 6.x a Dspace 7.2.1 En el servidor donde esta instalado Dspace7 y en mi caso con debian 11; usando el terminal. 1- Probar que Dspace 7.x este funcionando ok tanto el backend como el frontend. 2- Detener BackEnd (tomcat9) 3- y FrontEnd 4- Borrado de la BD que había quedado rota por pruebas anteriores, como ser el caso de que hubiera creado el usuario administrador. $sudo su postgres <postgres@devdspace> Si hago dropdb dspace me devuelve que hay conexiones, entonces debo saber que PID o conexiones hay y luego detener esas conexiones para poder borrar la bd. Para ello entro al psql, averiguo, detengo, salgo al postgres, hago el dropdb y luego vuelvo a crear la BD. Los pasos son: $ psql -d dspace $ SELECT *FROM pg_stat_activity WHERE datname=’dspace’; Devuelve una tabla con las conexiones existentes a la bd=dspace, debo anotar los núemros de PID. Para detener las conexiones activas; anotar los numeros PID que aparecen al ejecutar la orden anterior. $SELECT pg_terminate_backend(número PID) FROM pg_stat_activity WHERE datname='dspace'; repertir para cada PID. $\q para volver a posgres y matar la base de datos. postgres@devdspace:/home/dspace$ *dropdb dspace* Ahora se debe crear nuevamente la base de datos con todas sus caracteristicas postgres@devdspace:/home/dspace$ *createdb dspace -E UNICODE;* Entrar como usuario dspace con la orden postgres@devdspace:/home/dspace$ *psql -d dspace* Hacer propietario de la bd al usuario dspace dspace=# *ALTER DATABASE dspace OWNER TO dspace; * ALTER DATABASE Crear la extensión pgcrypto para la bd dspace=# *CREATE EXTENSION pgcrypto;* CREATE EXTENSION Dar privilegios dspace=# GRANT ALL PRIVILEGES ON DATABASE dspace TO dspace; GRANT Asignar password a la bd; esa password es la que usamos en el local.cfg para que acceda a la base de datos (debe ser la misma que la definidad en el BcakEnd en el local.cfg para que haya conexión con la base de datos). dspace=# ALTER ROLE dspace WITH PASSWORD '123456'; ALTER ROLE Con el comando \l muestra las bases datos y sus propietarios Salimos al postgres con \q dspace=# \q y luego salimos del postgres con exit postgres@devdspace:/home/dspace$ exit 5- Realizar copia/volcado de BD en la máquina que tiene el Dspace 6.x. En mi caso lo hice en postgres 9.6 y el archivo de datos en formato=custom con la orden que sigue: sudo pg_dump --format=custom -U dspace -W -h localhost dspace > mibase63 6- Restaurar volcado de datos de dspace 6.x en Dspace 7. En el servidor que tiene Dspace 7.x restaurar desde dentro del postgres13 con el comando: pg_restore --username=postgres –host=localhost --port=5432 --dbname=dspace -v mibase63 Cuando pide contraseña es la del usuario postgres=******* 7- Copiar la carpeta /assetstore desde el servidor dspace6.3 hacia el nuevo servidor Dspace7 8- Correr como dice Tim ./dspace database migrate ignored 9- Rearrancar el Tomcat para el BackEnd y el FrontEnd (pm2 start dspace-ui.json) 10- Luego ejecutar ./dspace index-discovery -b 11- En el navegador http://ipdemiservidor:4000/home Y allí estaban los registros de mi dspace63 en DSpace 7!!!!!!!!!!! -- Lic. José Miguel Ravasi -- All messages to this mailing list should adhere to the Code of Conduct: https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx --- You received this message because you are subscribed to the Google Groups "DSpace Technical Support" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/dspace-tech/CAPN8yDq1xSuqQGEiHJuEhAgjzFKjs%2B%3DLTsbkHMxZ99%3DifJZVFQ%40mail.gmail.com.
