Database showing multiple schema with 'null'

I wonder if anyone has experience of this problem.

When I view the Data Model for particular database, it shows two schemas listed, one with no name (or an empty string as name) and one with 'null'.

The first is not selectable. The one labelled 'null' is, but is also missing some tables. So it looks like something is corrupt, and the schema it does have isn't complete.

Is there a way I can fix this and rectify, without deleting the database and starting again?

47

Hi @AlistairWi-Q
Post "Diagnostic Info" from Admin > Troubleshooting.
I've never seen this, so something much have gone wrong during sync with your database.

Thanks for getting back to me, here's the diagnostics:

{
  "browser-info": {
    "language": "en-GB",
    "platform": "MacIntel",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36",
    "vendor": "Google Inc."
  },
  "system-info": {
    "file.encoding": "UTF-8",
    "java.runtime.name": "OpenJDK Runtime Environment",
    "java.runtime.version": "11.0.15+10",
    "java.vendor": "Eclipse Adoptium",
    "java.vendor.url": "https://adoptium.net/",
    "java.version": "11.0.15",
    "java.vm.name": "OpenJDK 64-Bit Server VM",
    "java.vm.version": "11.0.15+10",
    "os.name": "Linux",
    "os.version": "5.4.171+",
    "user.language": "en",
    "user.timezone": "Europe/London"
  },
  "metabase-info": {
    "databases": [
      "h2",
      "mysql",
      "googleanalytics"
    ],
    "hosting-env": "unknown",
    "application-database": "mysql",
    "application-database-details": {
      "database": {
        "name": "MySQL",
        "version": "5.7.37-google-log"
      },
      "jdbc-driver": {
        "name": "MariaDB Connector/J",
        "version": "2.7.5"
      }
    },
    "run-mode": "prod",
    "version": {
      "date": "2022-06-13",
      "tag": "v0.43.3",
      "branch": "release-x.43.x",
      "hash": "c9c7ef0"
    },
    "settings": {
      "report-timezone": "Europe/London"
    }
  }
}

@AlistairWi-Q
I'm guessing EPOS is a MySQL database.
MySQL doesn't have schemas - at least not the way like other database has.
It it doesn't make sense why Metabase even shows this.

Seems like something has gone wrong in the application database table metabase_table.schema, so make sure they are all set to null value, not a string.
I have a guess that you might have used a different database type at one time.

Yes it's a MySQL database. I'll have a look at the metabase_table.schema table as you suggest.

UPDATE: Indeed! I have discovered the database was once sqlite.

1 Like