You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: 20170313192741_add_themes.rb
    path of file: ./repos/discourse/db/migrate
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

class AddThemes < ActiveRecord::Migration[4.2]
  def up
    rename_table :site_customizations, :themes

    add_column :themes, :user_selectable, :bool, null: false, default: false
    add_column :themes, :hidden, :bool, null: false, default: false
    add_column :themes, :color_scheme_id, :integer

    create_table :child_themes do |t|
      t.integer :parent_th
    
  def up
    rename_table :site_customizations, :themes

    add_column :themes, :user_selectable, :bool, null: false, default: false
    add_column :themes, :hidden, :bool, null: false, default: false
    add_column :themes, :color_scheme_id, :integer

    create_table :child_themes do |t|
      t.integer :parent_theme_id
      t.integer :child_theme_id
      t.timestamps null: false
    end

    add_index :child_themes, %i[parent_theme_id child_theme_id], unique: true
    add_index :child_themes, %i[child_theme_id parent_theme_id], unique: true

    # versioning in color scheme table was very confusing, remove it
    execute "DELETE FROM color_schemes WHERE versioned_id IS NOT NULL"
    remove_column :color_schemes, :versioned_id

    enabled_theme_count = execute("SELECT count(*) FROM themes WHERE enabled").to_a[0]["count"].to_i

    enabled_scheme_id = execute("SELECT id FROM color_schemes WHERE enabled").to_a[0]&.fetch("id")

    theme_key, theme_id = execute("SELECT key, id FROM themes WHERE enabled").to_a[0]&.values

    if (enabled_theme_count == 0 && enabled_scheme_id) || enabled_theme_count > 1
      puts "Creating a new default theme!"

      theme_key = "7e202ef2-6666-47d5-98d8-a9c8d15e57dd"

      sql = <<SQL
      INSERT INTO themes(name,created_at,updated_at, enabled, key, user_id)
      VALUES('Default', :now, :now, false, :key, -1)
      RETURNING *
SQL

      sql = DB.sql_fragment(sql, now: Time.zone.now, key: theme_key)
      theme_id = execute(sql).to_a[0]["id"].to_i
    end