# File lib/dm-core/migrations.rb, line 890
      def create_model_storage(model)
        properties = model.properties_with_subclasses(name)
        table_name = model.storage_name(name)
        truncate_or_delete = self.class.auto_migrate_with
        table_is_truncated = truncate_or_delete && @truncated_tables && @truncated_tables[table_name]

        return false if storage_exists?(table_name) && !table_is_truncated
        return false if properties.empty?

        with_connection do |connection|
          # if table was truncated then check if all columns for properties are present
          # TODO: check all other column definition options
          if table_is_truncated && storage_has_all_fields?(table_name, properties)
            @truncated_tables[table_name] = nil
          else
            # forced drop of table if properties are different
            if truncate_or_delete
              destroy_model_storage(model, true)
            end

            statement = create_table_statement(connection, model, properties)
            command   = connection.create_command(statement)
            command.execute_non_query

            (create_index_statements(model) + create_unique_index_statements(model)).each do |statement|
              command   = connection.create_command(statement)
              command.execute_non_query
            end

            # added creation of sequence
            create_sequence_statements(model).each do |statement|
              command   = connection.create_command(statement)
              command.execute_non_query
            end
          end

        end

        true
      end