database.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import path from 'path';
  2. import { readFileSync } from 'fs';
  3. export default ({ env }: { env: any }) => {
  4. const client = env('DATABASE_CLIENT', 'sqlite');
  5. const connections = {
  6. mysql: {
  7. connection: {
  8. host: env('DATABASE_HOST', 'localhost'),
  9. port: env.int('DATABASE_PORT', 3306),
  10. database: env('DATABASE_NAME', 'strapi'),
  11. user: env('DATABASE_USERNAME', 'strapi'),
  12. password: env('DATABASE_PASSWORD', 'strapi'),
  13. ssl: env.bool('DATABASE_SSL', false) && {
  14. key: env('DATABASE_SSL_KEY', undefined),
  15. cert: env('DATABASE_SSL_CERT', undefined),
  16. ca: env('DATABASE_SSL_CA', undefined),
  17. capath: env('DATABASE_SSL_CAPATH', undefined),
  18. cipher: env('DATABASE_SSL_CIPHER', undefined),
  19. rejectUnauthorized: env.bool('DATABASE_SSL_REJECT_UNAUTHORIZED', true),
  20. },
  21. },
  22. pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) },
  23. },
  24. postgres: {
  25. connection: {
  26. connectionString: env('DATABASE_URL'),
  27. host: env('DATABASE_HOST', 'localhost'),
  28. port: env.int('DATABASE_PORT', 5432),
  29. database: env('DATABASE_NAME', 'strapi'),
  30. user: env('DATABASE_USERNAME', 'strapi'),
  31. password: env('DATABASE_PASSWORD', 'strapi'),
  32. ssl: {
  33. rejectUnauthorized: true,
  34. ca: readFileSync(path.join(__dirname, '..', '..', 'rds-ca-bundle.pem')).toString(),
  35. },
  36. schema: env('DATABASE_SCHEMA', 'public'),
  37. },
  38. pool: { min: env.int('DATABASE_POOL_MIN', 2), max: env.int('DATABASE_POOL_MAX', 10) },
  39. },
  40. sqlite: {
  41. connection: {
  42. filename: path.join(__dirname, '..', '..', env('DATABASE_FILENAME', '.tmp/data.db')),
  43. },
  44. useNullAsDefault: true,
  45. },
  46. };
  47. return {
  48. connection: {
  49. client,
  50. ...connections[client],
  51. acquireConnectionTimeout: env.int('DATABASE_CONNECTION_TIMEOUT', 60000),
  52. },
  53. };
  54. };