We had used the /usr/share/one/install_gems script to install gems....

Never the less seems that some of them need the corresponded devel c library, and fails to install

We now had install the gems one by one, and these errors appears...

Now the onedb command runs....

Thanks a lot for your help....




Ruben Diez escribió:
Thank you for your help....

After the modification you suggest, this is the output:

oneadmin@onesrv04:/srv/cloud$ onedb upgrade -v
undefined method `fetch' for nil:NilClass
Database schema does not look to be created by OpenNebula: table user_pool is missing or empty.

Seems to fail to find a function.... Perhaps any library is needed??
We think all the ruby gems are installed, as the documentation explain....




Carlos Martín Sánchez escribió:
I don't see any other reasons why this could fail... Could you edit /usr/lib/one/ruby/onedb/onedb_backend.rb to output some more info?

Just add the Exception message to the rescue clause in db_exists?

    def db_exists?
        begin
            # User with ID 0 (oneadmin) always exists
            @db.fetch("SELECT * FROM user_pool WHERE oid=0") { |row| }
            return true
        rescue Exception => e
            puts e.message
            return false
        end
    end

Thank you
--
Carlos Martín, MSc
Project Engineer
OpenNebula - The Open Source Toolkit for Cloud Computing
www.OpenNebula.org <http://www.opennebula.org/> | [email protected] <mailto:[email protected]>


2011/10/18 Ruben Diez <[email protected] <mailto:[email protected]>>

    Yes: it is populated:

    mysql> select * from user_pool where oid=0;
+-----+-----------+------------------------------------------+---------+
    | oid | user_name | password                                 |
    enabled |
+-----+-----------+------------------------------------------+---------+ | 0 | oneadmin | 8944aada99d6d0122494dd0ac8129db653bc1f4a | 1 | +-----+-----------+------------------------------------------+---------+
    1 row in set (0.00 sec)

    When you put the "-p" option followed by a blank space you are
    prompted for the password... in this case "opennebula" is the
    database name, not the password...

    We can't make onedb backup in the old machine because the onedb
    command don't exist in OpenNebula 2.1...

    Any way, the onedb backup command seems to be a wrapper of the
    mysqldump command....



    Carlos Martín Sánchez escribió:

        Hi,

        Is the DB in the new machine correctly populated?
        Can you manually perform a "select * from user_pool where
        oid=0;" ?

        I'm asking because the '-p' option of the mysql commands needs
        the password right next to it, without any space; i.e.
        '-popennebula' instead of '-p opennebula'


        In case any other user is in a similar situation, you can use
        the onedb command to move the DB to the new mysql server using
        "onedb backup" and "onedb restore".

        Regards.
        --
        Carlos Martín, MSc
        Project Engineer
        OpenNebula - The Open Source Toolkit for Cloud Computing
        www.OpenNebula.org <http://www.OpenNebula.org>
        <http://www.opennebula.org/> | [email protected]
        <mailto:[email protected]> <mailto:[email protected]
        <mailto:[email protected]>>



        On Tue, Oct 18, 2011 at 12:35 PM, Ruben Diez <[email protected]
        <mailto:[email protected]> <mailto:[email protected]
        <mailto:[email protected]>>> wrote:

           Hi:

           We are attempt to migrate OpenNebula from 2.1.80 to 3.0....

           But the new 3.0 OpenNebula was installed in a new machine.

           For database migration, we have followed these steps:

           1- In the old machine, we made a dump of the database:

           mysqldump -h localhost -u oneadmin -p opennebula
           >opennebula_2_database.mysq

           2- In the new machine, we create the oneadmin user, an empty
           opennebula database and grant privileges to user oneadmin on
           database opennebula:

           mysql> create user 'oneadmin'@'localhost' identified by
        'XXXXX';
           mysql> create database opennebula;
           mysql> grant all privileges on opennebula.* to
        'oneadmin'@'localhost';

           3- Now, in the new machine, we restore the 2.1 version
        database:

           mysql -h localhost -u oneadmin -p opennebula
           <opennebula_2_database.mysql

           4- The configuration of the database is set in the
        oned.conf file:

           DB = [ backend = "mysql",
                 server  = "localhost",
                 port    = 0,
                 user    = "oneadmin",
                 passwd  = "XXXXX",
                 db_name = "opennebula" ]

           5- Now, we attempt the database conversion: but it fails:

#oneadmin@onesrv04:/srv/cloud$ onedb upgrade -v Database schema does not look to be
        created by
           OpenNebula: table user_pool is missing or empty.


           We attempt to avoid oned.conf file, but also fails:

#oneadmin@onesrv04:/srv/cloud$ onedb upgrade -v -u oneadmin -d
           opennebula   MySQL Password:
           MySQL option DBNAME is needed

           #oneadmin@onesrv04:/srv/cloud$ onedb upgrade -v  -u root -d
        opennebula
           MySQL Password:
           MySQL option DBNAME is needed

           #oneadmin@onesrv04:/srv/cloud$ onedb upgrade -v -P 3306 -S
           localhost -u oneadmin -d opennebula
           MySQL Password:
           MySQL option DBNAME is needed


           Any ideas about why the database migration fails??

           Regards....

           _______________________________________________
           Users mailing list
           [email protected]
        <mailto:[email protected]>
        <mailto:[email protected]
        <mailto:[email protected]>>
           http://lists.opennebula.org/listinfo.cgi/users-opennebula.org





_______________________________________________
Users mailing list
[email protected]
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org

_______________________________________________
Users mailing list
[email protected]
http://lists.opennebula.org/listinfo.cgi/users-opennebula.org

Reply via email to