create!

in lib/aws-record/record/table_migration.rb [72:103]


      def create!(opts)
        gsit = opts.delete(:global_secondary_index_throughput)
        _validate_billing(opts)

        create_opts = opts.merge({
          table_name: @model.table_name,
          attribute_definitions: _attribute_definitions,
          key_schema: _key_schema
        })
        if lsis = @model.local_secondary_indexes_for_migration
          create_opts[:local_secondary_indexes] = lsis
          _append_to_attribute_definitions(lsis, create_opts)
        end
        if gsis = @model.global_secondary_indexes_for_migration
          unless gsit || opts[:billing_mode] == 'PAY_PER_REQUEST'
            raise ArgumentError.new(
              'If you define global secondary indexes, you must also define'\
                ' :global_secondary_index_throughput on table creation,'\
                " unless :billing_mode is set to 'PAY_PER_REQUEST'."
            )
          end
          gsis_opts = if opts[:billing_mode] == 'PAY_PER_REQUEST'
                        gsis
                      else
                        _add_throughput_to_gsis(gsis, gsit)
                      end
          create_opts[:global_secondary_indexes] = gsis_opts
          _append_to_attribute_definitions(gsis, create_opts)
        end
        @client.create_table(create_opts)
      end