method private _add_column_internal =
    fun ~table ~model ~name ~comment ~ty ?(nullable = true)
        ?(ocaml_type = "") ?(sql2ml = "") ?(ml2sql = "")
        ?(options = Dbf_misc.StringMap.empty)
        ?(spec_ty = Dbf_misc.StringMap.empty)
        () ->

      let column = SQL_db.insert_column table ~name ~comment ~ty ~nullable () in
        column.SQL_db.col_spec_options <- options;
        column.SQL_db.col_spec_ty      <- spec_ty;
        column.SQL_db.col_ocaml_ty     <- ocaml_type;
        column.SQL_db.col_sql2ml       <- sql2ml;
        column.SQL_db.col_ml2sql       <- ml2sql;
        model#append_data column;
        self#_document_changed ()