code: def grains(self):
      url = make_url_safe(self.sqlalchemy_uri)
      backend = url.get_backend_name()
      db_engine_spec = db_engine_specs.engines.get(
          backend, db_engine_specs.BaseEngineSpec
      )
      return db_engine_spec.get_time_grains()
  
file_path: superset/superset/migrations/versions/2020-04-29_09-24_620241d1153f_update_time_grain_sqla.py
imports: import json
  from alembic import op
  from sqlalchemy import Column, ForeignKey, Integer, Text
  from sqlalchemy.ext.declarative import declarative_base
  from superset import db, db_engine_specs
  from superset.databases.utils import make_url_safe
label_desc: Use image node_id 1 for calling the Database obj's underlying member method code with example usage: obj.grains() and returns: db_engine_spec