Problem using martEditor tool

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem using martEditor tool

anu jagtap
Hello,

I am trying to install biomart website using biomart-perl package. I have some data in mysql database. I am trying to connect to this database using registryDBpointer.xml file which has details of the mysql database I am working with. When I run the configuration command 

perl bin/configure.pl --clean -r conf/registryDBPointer.xml  

It connects successfully to the database but it gives following error at the end -

ERROR something wrong with your registry: DBD::mysql::st execute failed: Table 'biomart.meta_registry' doesn't exist at /data/www/html/web/biomart/bin/../../../../biomart/lib/BioMart/Configuration/RegistryDBPointer.pm line 87.

I have used MartBuilder tool to create marts and then used MartEditor tool to configure marts to be used by the Martview.
when I ran MartEditor tool it created the following meta tables - 

| meta_conf__dataset__main      |
| meta_conf__interface__dm      |
| meta_conf__user__dm           |
| meta_conf__xml__dm            |
| meta_template__template__main |
| meta_template__xml__dm        |
| meta_version__version__main |

but it didn't create the meta_registry table. 

Can you please help me on how to solve this problem?

Thanks & Regards
Anu

Reply | Threaded
Open this post in threaded view
|

Re: Problem using martEditor tool

Leandro Hermida-2
Hi Anu,

I think you are supposed to use MartDBLocation not RegistryDBPointer
for your case which is connecting to a MySQL server in your network...
look at examples in the conf folder, it should have the form:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MartRegistry>
<MartRegistry>
<MartDBLocation
                name            = "MyMart"
                displayName     = "My Mart"
                databaseType    = "mysql"
                host            = "dbhostname"
                port            = "3306"
                database        = "my_mart"
                schema          = "my_mart"
                user            = "db_username"
                password        = "db_password"
                visible         = "1"
                default         = ""
                includeDatasets = "MyDataset"
                martUser        = ""
/>
</MartRegistry>

hope this helps,
Leandro

On Wed, Jul 14, 2010 at 6:58 PM, anu jagtap <[hidden email]> wrote:

> Hello,
> I am trying to install biomart website using biomart-perl package. I have
> some data in mysql database. I am trying to connect to this database using
> registryDBpointer.xml file which has details of the mysql database I am
> working with. When I run the configuration command
> perl bin/configure.pl --clean -r conf/registryDBPointer.xml
> It connects successfully to the database but it gives following error at the
> end -
> ERROR something wrong with your registry: DBD::mysql::st execute failed:
> Table 'biomart.meta_registry' doesn't exist at
> /data/www/html/web/biomart/bin/../../../../biomart/lib/BioMart/Configuration/RegistryDBPointer.pm
> line 87.
> I have used MartBuilder tool to create marts and then used MartEditor tool
> to configure marts to be used by the Martview.
> when I ran MartEditor tool it created the following meta tables -
> | meta_conf__dataset__main      |
> | meta_conf__interface__dm      |
> | meta_conf__user__dm           |
> | meta_conf__xml__dm            |
> | meta_template__template__main |
> | meta_template__xml__dm        |
> | meta_version__version__main |
> but it didn't create the meta_registry table.
> Can you please help me on how to solve this problem?
> Thanks & Regards
> Anu
>
Reply | Threaded
Open this post in threaded view
|

Re: Problem using martEditor tool

anu jagtap
Hi 


Thank you for your help Leandro. I tried using MartDBLocation.xml. Now it doesn't give "'biomart.meta_registry' table doesn't exist' error.  But now the martview script is not able to get the BIOMART_REGISTRY.

I have done some changes to martview.PLS

Instead writing following eval in the httpd.conf file I have written it in martview.PLS just before where it checks 

eval { my $init = BioMart::Initializer->new(registryFile => '/www/html/web/biomart/conf/martDBLocation.xml');
       $main::BIOMART_REGISTRY = $init->getRegistry() || die "Can't get registry from initializer";
};

if (!$main::BIOMART_REGISTRY) {
        my $ex = Exception::Class->caught('BioMart::Exception');
if(!$ex) {
$ex = BioMart::Exception->new('non-BioMart die(): '.'please run configure.pl following the instructions from file INSTALL');
}
else{
       $registry = $main::BIOMART_REGISTRY;
}

I was able to get the biomart_registry when i was using RegistryDBPointer.xml file. But now as I am using MartDBLocation.xml file,
it is not getting the registry set.  

Is there any problem with the eval statment or the place of the eval statement? below are the contents of the martDBLocation.xml I am using 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MartRegistry>
<MartRegistry>

<MartDBLocation
                    name         = "biomart"
                    displayName  = "My BioMart Database"
                    databaseType = "mysql"
                    host         = "localhost"
                    port         = "3306"
                    database     = "biomart"
                    schema       = "biomart"
                    user         = "bmartadm"
                    password     = "password"
                    visible      = "1"
                    default      = ""
                    includeDatasets = ""
                    martUser     = ""
/>
</MartRegistry>


Thanks
Anu


On Wed, Jul 14, 2010 at 12:52 PM, Leandro Hermida <[hidden email]> wrote:
Hi Anu,

I think you are supposed to use MartDBLocation not RegistryDBPointer
for your case which is connecting to a MySQL server in your network...
look at examples in the conf folder, it should have the form:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MartRegistry>
<MartRegistry>
<MartDBLocation
               name            = "MyMart"
               displayName     = "My Mart"
               databaseType    = "mysql"
               host            = "dbhostname"
               port            = "3306"
               database        = "my_mart"
               schema          = "my_mart"
               user            = "db_username"
               password        = "db_password"
               visible         = "1"
               default         = ""
               includeDatasets = "MyDataset"
               martUser        = ""
/>
</MartRegistry>

hope this helps,
Leandro

On Wed, Jul 14, 2010 at 6:58 PM, anu jagtap <[hidden email]> wrote:
> Hello,
> I am trying to install biomart website using biomart-perl package. I have
> some data in mysql database. I am trying to connect to this database using
> registryDBpointer.xml file which has details of the mysql database I am
> working with. When I run the configuration command
> perl bin/configure.pl --clean -r conf/registryDBPointer.xml
> It connects successfully to the database but it gives following error at the
> end -
> ERROR something wrong with your registry: DBD::mysql::st execute failed:
> Table 'biomart.meta_registry' doesn't exist at
> /data/www/html/web/biomart/bin/../../../../biomart/lib/BioMart/Configuration/RegistryDBPointer.pm
> line 87.
> I have used MartBuilder tool to create marts and then used MartEditor tool
> to configure marts to be used by the Martview.
> when I ran MartEditor tool it created the following meta tables -
> | meta_conf__dataset__main      |
> | meta_conf__interface__dm      |
> | meta_conf__user__dm           |
> | meta_conf__xml__dm            |
> | meta_template__template__main |
> | meta_template__xml__dm        |
> | meta_version__version__main |
> but it didn't create the meta_registry table.
> Can you please help me on how to solve this problem?
> Thanks & Regards
> Anu
>

Reply | Threaded
Open this post in threaded view
|

Re: Problem using martEditor tool

Leandro Hermida-2
Hi Anu,

Now it doesn't give "'biomart.meta_registry' table doesn't exist' error.

After creating your mart database using MartBuilder (or via a script or manually) you have to run MartEditor to configure your mart and to set up all the meta__* tables.  Have you done this?  Doesn't look like the meta__* tables are there or if you have run MartEditor you didn't do and "Export" to save everything to the database.

best,
Leandro


On Wed, Jul 28, 2010 at 8:52 PM, anu jagtap <[hidden email]> wrote:
Hi 


Thank you for your help Leandro. I tried using MartDBLocation.xml. Now it doesn't give "'biomart.meta_registry' table doesn't exist' error.  But now the martview script is not able to get the BIOMART_REGISTRY.

I have done some changes to martview.PLS

Instead writing following eval in the httpd.conf file I have written it in martview.PLS just before where it checks 

eval { my $init = BioMart::Initializer->new(registryFile => '/www/html/web/biomart/conf/martDBLocation.xml');
       $main::BIOMART_REGISTRY = $init->getRegistry() || die "Can't get registry from initializer";
};

if (!$main::BIOMART_REGISTRY) {
        my $ex = Exception::Class->caught('BioMart::Exception');
if(!$ex) {
$ex = BioMart::Exception->new('non-BioMart die(): '.'please run configure.pl following the instructions from file INSTALL');
}
else{
       $registry = $main::BIOMART_REGISTRY;
}

I was able to get the biomart_registry when i was using RegistryDBPointer.xml file. But now as I am using MartDBLocation.xml file,
it is not getting the registry set.  

Is there any problem with the eval statment or the place of the eval statement? below are the contents of the martDBLocation.xml I am using 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MartRegistry>
<MartRegistry>

<MartDBLocation
                    name         = "biomart"
                    displayName  = "My BioMart Database"
                    databaseType = "mysql"
                    host         = "localhost"
                    port         = "3306"
                    database     = "biomart"
                    schema       = "biomart"
                    user         = "bmartadm"
                    password     = "password"
                    visible      = "1"
                    default      = ""
                    includeDatasets = ""
                    martUser     = ""
/>
</MartRegistry>


Thanks
Anu


On Wed, Jul 14, 2010 at 12:52 PM, Leandro Hermida <[hidden email]> wrote:
Hi Anu,

I think you are supposed to use MartDBLocation not RegistryDBPointer
for your case which is connecting to a MySQL server in your network...
look at examples in the conf folder, it should have the form:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MartRegistry>
<MartRegistry>
<MartDBLocation
               name            = "MyMart"
               displayName     = "My Mart"
               databaseType    = "mysql"
               host            = "dbhostname"
               port            = "3306"
               database        = "my_mart"
               schema          = "my_mart"
               user            = "db_username"
               password        = "db_password"
               visible         = "1"
               default         = ""
               includeDatasets = "MyDataset"
               martUser        = ""
/>
</MartRegistry>

hope this helps,
Leandro

On Wed, Jul 14, 2010 at 6:58 PM, anu jagtap <[hidden email]> wrote:
> Hello,
> I am trying to install biomart website using biomart-perl package. I have
> some data in mysql database. I am trying to connect to this database using
> registryDBpointer.xml file which has details of the mysql database I am
> working with. When I run the configuration command
> perl bin/configure.pl --clean -r conf/registryDBPointer.xml
> It connects successfully to the database but it gives following error at the
> end -
> ERROR something wrong with your registry: DBD::mysql::st execute failed:
> Table 'biomart.meta_registry' doesn't exist at
> /data/www/html/web/biomart/bin/../../../../biomart/lib/BioMart/Configuration/RegistryDBPointer.pm
> line 87.
> I have used MartBuilder tool to create marts and then used MartEditor tool
> to configure marts to be used by the Martview.
> when I ran MartEditor tool it created the following meta tables -
> | meta_conf__dataset__main      |
> | meta_conf__interface__dm      |
> | meta_conf__user__dm           |
> | meta_conf__xml__dm            |
> | meta_template__template__main |
> | meta_template__xml__dm        |
> | meta_version__version__main |
> but it didn't create the meta_registry table.
> Can you please help me on how to solve this problem?
> Thanks & Regards
> Anu
>


Reply | Threaded
Open this post in threaded view
|

Re: Problem using martEditor tool

Leandro Hermida-2
Hi again,

Sorry Anu strike that... meta_registry should only be there in certain configurations and not for a local DB.  After creating your myMartDBLocation.xml did you re-run the entire configure?

cd /path/to/biomart-perl
perl bin/configure.pl --clean -r conf/myMartDBLocation.xml

This should run with no errors.  Then you must completely restart the BioMart web server.

-leandro

On Thu, Jul 29, 2010 at 12:50 PM, Leandro Hermida <[hidden email]> wrote:
Hi Anu,


Now it doesn't give "'biomart.meta_registry' table doesn't exist' error.

After creating your mart database using MartBuilder (or via a script or manually) you have to run MartEditor to configure your mart and to set up all the meta__* tables.  Have you done this?  Doesn't look like the meta__* tables are there or if you have run MartEditor you didn't do and "Export" to save everything to the database.

best,
Leandro



On Wed, Jul 28, 2010 at 8:52 PM, anu jagtap <[hidden email]> wrote:
Hi 


Thank you for your help Leandro. I tried using MartDBLocation.xml. Now it doesn't give "'biomart.meta_registry' table doesn't exist' error.  But now the martview script is not able to get the BIOMART_REGISTRY.

I have done some changes to martview.PLS

Instead writing following eval in the httpd.conf file I have written it in martview.PLS just before where it checks 

eval { my $init = BioMart::Initializer->new(registryFile => '/www/html/web/biomart/conf/martDBLocation.xml');
       $main::BIOMART_REGISTRY = $init->getRegistry() || die "Can't get registry from initializer";
};

if (!$main::BIOMART_REGISTRY) {
        my $ex = Exception::Class->caught('BioMart::Exception');
if(!$ex) {
$ex = BioMart::Exception->new('non-BioMart die(): '.'please run configure.pl following the instructions from file INSTALL');
}
else{
       $registry = $main::BIOMART_REGISTRY;
}

I was able to get the biomart_registry when i was using RegistryDBPointer.xml file. But now as I am using MartDBLocation.xml file,
it is not getting the registry set.  

Is there any problem with the eval statment or the place of the eval statement? below are the contents of the martDBLocation.xml I am using 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MartRegistry>
<MartRegistry>

<MartDBLocation
                    name         = "biomart"
                    displayName  = "My BioMart Database"
                    databaseType = "mysql"
                    host         = "localhost"
                    port         = "3306"
                    database     = "biomart"
                    schema       = "biomart"
                    user         = "bmartadm"
                    password     = "password"
                    visible      = "1"
                    default      = ""
                    includeDatasets = ""
                    martUser     = ""
/>
</MartRegistry>


Thanks
Anu


On Wed, Jul 14, 2010 at 12:52 PM, Leandro Hermida <[hidden email]> wrote:
Hi Anu,

I think you are supposed to use MartDBLocation not RegistryDBPointer
for your case which is connecting to a MySQL server in your network...
look at examples in the conf folder, it should have the form:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE MartRegistry>
<MartRegistry>
<MartDBLocation
               name            = "MyMart"
               displayName     = "My Mart"
               databaseType    = "mysql"
               host            = "dbhostname"
               port            = "3306"
               database        = "my_mart"
               schema          = "my_mart"
               user            = "db_username"
               password        = "db_password"
               visible         = "1"
               default         = ""
               includeDatasets = "MyDataset"
               martUser        = ""
/>
</MartRegistry>

hope this helps,
Leandro

On Wed, Jul 14, 2010 at 6:58 PM, anu jagtap <[hidden email]> wrote:
> Hello,
> I am trying to install biomart website using biomart-perl package. I have
> some data in mysql database. I am trying to connect to this database using
> registryDBpointer.xml file which has details of the mysql database I am
> working with. When I run the configuration command
> perl bin/configure.pl --clean -r conf/registryDBPointer.xml
> It connects successfully to the database but it gives following error at the
> end -
> ERROR something wrong with your registry: DBD::mysql::st execute failed:
> Table 'biomart.meta_registry' doesn't exist at
> /data/www/html/web/biomart/bin/../../../../biomart/lib/BioMart/Configuration/RegistryDBPointer.pm
> line 87.
> I have used MartBuilder tool to create marts and then used MartEditor tool
> to configure marts to be used by the Martview.
> when I ran MartEditor tool it created the following meta tables -
> | meta_conf__dataset__main      |
> | meta_conf__interface__dm      |
> | meta_conf__user__dm           |
> | meta_conf__xml__dm            |
> | meta_template__template__main |
> | meta_template__xml__dm        |
> | meta_version__version__main |
> but it didn't create the meta_registry table.
> Can you please help me on how to solve this problem?
> Thanks & Regards
> Anu
>