public static function test_table_fields_are_correct_classes()
 {
     $table = Database_DatabaseHelper::get_table('hc_database_test_1');
     $field_classes = array('id' => 'Database_IntField', 'varchar_field' => 'Database_VarCharField', 'float_field' => 'Database_FloatField', 'decimal_field' => 'Database_DecimalField', 'date_field' => 'Database_DateTimeField', 'text_field' => 'Database_TextField', 'foreign_key_id' => 'Database_IntField', 'enum_field' => 'Database_EnumField');
     foreach (array_keys($field_classes) as $key) {
         if (!is_a($table->get_field($key), $field_classes[$key])) {
             return FALSE;
         }
     }
     return TRUE;
 }
 public static function dtest_all_db_fields_have_correct_type_in_specification()
 {
     foreach (Database_DatabaseHelper::get_tables() as $db_table) {
         $specified_table = Database_TableSpecificationHelper::get_table($db_table->get_name());
         foreach ($db_table->get_fields() as $db_field) {
             if ($db_field->get_type() != $specified_table->get_field_type($db_field->get_name())) {
                 return FALSE;
             }
         }
     }
     return TRUE;
 }
 public function do_actions()
 {
     $root_dbh = Database_ConnectionsHelper::get_root_connection_using_cli();
     Database_DatabaseHelper::reset_database($root_dbh);
 }
 /**
  * This function makes the table specification
  * like the database.
  */
 public static function sync_database_with_table_specification()
 {
     $debug = FALSE;
     #$debug = TRUE;
     foreach (Database_DatabaseHelper::get_tables() as $db_table) {
         $table_specification_directory_name = self::get_table_specification_directory_name($db_table->get_name());
         if ($debug) {
             echo '$table_specification_directory_name: ' . $table_specification_directory_name . PHP_EOL;
         }
         self::save_table_structure_in_directory($table_name, $table_specification_directory_name);
     }
 }