code: def create(self, force=False, exists_ok=False):
          
          if self.fname and self.fname.exists():
              if force:
                  self.drop()
              elif exists_ok:
                  return
              else:
                  raise ValueError('db file already exists, use force=True to overwrite')
          with self.connection() as db:
              db.execute(
                  """\
  CREATE TABLE dataset (
      ID TEXT PRIMARY KEY NOT NULL,
      name TEXT,
      version TEXT,
      metadata_json TEXT
  )""")
              db.execute("""\
  CREATE TABLE datasetmeta (
      dataset_ID TEXT ,
      key TEXT,
      value TEXT,
      PRIMARY KEY (dataset_ID, key),
      FOREIGN KEY(dataset_ID) REFERENCES dataset(ID)
  )""")
              db.execute("""\
  CREATE TABLE SourceTable (
      dataset_ID TEXT ,
      ID TEXT ,
      bibtex_type TEXT,
      {0}
      extra TEXT,
      PRIMARY KEY (dataset_ID, ID),
      FOREIGN KEY(dataset_ID) REFERENCES dataset(ID)
  )""".format('\n    '.join('`{0}` TEXT,'.format(f) for f in BIBTEX_FIELDS)))
docs: Creates a db file with the core schema.
  
          :param force: If `True` an existing db file will be overwritten.