Different models for different databases

I would try to keep the same model and conditionally define the fields e.g.

if connection.vendor == 'postgresql':
    from django.contrib.postgres.search import SearchVectorField
else:
    SearchVectorField = object


# Create your models here.
class MyModel(models.Model):
    original_text = models.TextField()
    stemmed_text = SearchVectorField()

I don’t know how exactly you would like to handle VIRTUAL tables on SQLite, so my advice may not be the best.