Why table creation on module install doesn't work? I need to create custom table for module, but after module install table is not created.

module.install file:

function bip_content_migration_schema() {

    $schema['bip_migrate'] = array(

            'description' =&gt; 'Storing content migration info from Joomla.',
            'fields' =&gt; array(

                    'id' =&gt; array(
                            'description' =&gt; 'id',
                            'type' =&gt; 'serial',
                    ),
                    'content_type' =&gt; array(
                            'description' =&gt; 'content type',
                            'type' =&gt; 'varchar',
                            'not null' =&gt; TRUE,
                            'length' =&gt; 255,
                    ),
                    'imported_count' =&gt; array(
                            'description' =&gt; 'imported count',
                            'type' =&gt; 'int',
                            'not null' =&gt; TRUE,
                            'default' =&gt; 0,
                    ),
                    'to_import_count' =&gt; array(
                            'description' =&gt; 'to import count',
                            'type' =&gt; 'int',
                            'not_null' =&gt; TRUE,
                    ),
                    'is_imported' =&gt; array(
                            'description' =&gt; 'is imported',
                            'type' =&gt; 'int',
                            'default' =&gt; 0,
                    ),
            ),
            'primary key' =&gt; array('id'),
            'indexes' =&gt; array(
                    'id' =&gt; array('id'),
            ),
    );
    return $schema;

}


What am I doing wrong?

EDIT

I added functions to my .install file (thought that I can ommit theme)

function bip_content_migration_install() {
    drupal_install_schema('bip_content_migration');
}

function bip_content_migration_uninstall() {
    drupal_uninstall_schema('bip_content_migration');
}


But again table is not created.
In Drupal 7, it is not necessary to call drupal_install_schema(), or drupal_uninstall_schema(); that is automatically done from Drupal. It is enough to implement hook_schema(), and the database table is created. There are many modules for Drupal 7 implementing that hook, and their database tables are created.

I can think of two possible causes for the database table not being created:


The short name of the module is not bip_content_migration
You added the hook_schema() implementation on an already installed module


If you installed the module, disabled it, changed the code, and re-enabled it, the database table would not be created. Disabling a module is different from uninstalling it. Uninstalling is done when a module is disabled, and then uninstalled from the "Uninstall" tab in admin/modules.



I didn't considered the following two cases, as Drupal should have given you some errors:


The schema is not correct
Drupal is not able to connect to the database, while installing the module.


If there are more databases, be sure you are looking at the right database.