# Vercel Postgres, no transactions?

> Vercel Postgres with Kysely does not support transactions, so I had to rewrite db.transaction() code as plain queries, or use a direct pg connection instead.

Author: [Flavio Copes](https://flaviocopes.com/about/) | Published: 2023-11-10 | Topics: [Database](https://flaviocopes.com/tags/database/) | Canonical: https://flaviocopes.com/vercel-postgres-no-transactions/

I had problems using Kysely on Vercel Postgres, with the  `@vercel/postgres` and `@vercel/postgres-kysely` adapters.

Basically, transactions are not supported.

I had some code like this:

```javascript
const data = await db.transaction().execute(async (trx) => {
  const somedata = await trx
    .selectFrom('table1')
    .selectAll()
    .where('id', '=', token)
    .executeTakeFirst()

  if (!somedata) throw new Error('Invalid data')

  await trx
    .deleteFrom('table2')
    .where('id', '=', token)
    .executeTakeFirst()

  return somedata
})

console.log(data)
```

and I had to remove the transaction, I just used the queries without the transaction:

```javascript
const data = await db.selectFrom('table1')
  .selectAll()
  .where('id', '=', token)
  .executeTakeFirst()

if (!data) throw new Error('Invalid data')

await db.deleteFrom('table2')
  .where('id', '=', token)
  .executeTakeFirst()

console.log(data)
```

Hopefully transactions will be implemented.

If you absolutely need them you can still use a direct connection to the database using `pg`
