Sequelize ਬਨਾਮ Prisma

ਸ਼ੁਰੂ

ਵਰਤਮਾਨ ਵਿੱਚ eBay ‘ਤੇ, ਮੈਂ ਸਾਡੇ ਆੰਤਰੀਕ ਟੂਲ MongoDB ਤੋਂ Postgres ਵੱਲ ਮਾਈਗ੍ਰੇਟ ਕਰ ਰਿਹਾ ਹਾਂ। ਇੱਕ ਐਸਾ ਪ੍ਰੋਜੈਕਟ ਜੋ ਬਹੁਤ ਮੁਸ਼ਕਲ ਹੈ ਪਰ ਮੈਂ ਇਸਨੂੰ ਸੀਧਾ ਸਾਮ੍ਹਣਾ ਕਰਨ ਲਈ ਉਤਸ਼ਾਹਿਤ ਹਾਂ। ਖੋਜ ਕਰਦਿਆਂ, ਮੈਂ ਨਿਰਣੈ ਕੀਤਾ ਕਿ ਸਾਡੇ ਕੋਡਬੇਸ ਲਈ ਇੱਕ ORM ਵਰਤਣਾ ਸਭ ਤੋਂ ਵਧੀਆ ਰਹੇਗਾ ਕਿਉਂਕਿ ਕੋਡਬੇਸ ਪਹਿਲਾਂ ਹੀ Mongoose ਵਰਤਣ ਲਈ ਡਿਜ਼ਾਈਨ ਕੀਤਾ ਗਿਆ ਸੀ। ਪਰ ਹੁਣ ਚੁਣੌਤੀ ਇਹ ਹੈ ਕਿ ਕਿਹੜਾ ORM ਸਾਡੇ ਕੋਡਬੇਸ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਹੋਵੇਗਾ? ਇਸ ਬਲੌਗ ਵਿੱਚ, ਮੈਂ ਇਸ ਸਵਾਲ ਵਿੱਚ ਗਹਿਰਾਈ ਨਾਲ ਜਾਊਂਗਾ। ਕਿਰਪਾ ਕਰਕੇ ਨੋਟ ਕਰੋ ਕਿ ਆਪਣੇ ਨੌਕਰੀਦਾਤਾ ਨਾਲ ਮੇਰੇ ਸੰਪਰਕ ਦੀ ਕੁਦਰਤ ਦੇ ਕਾਰਨ ਮੈਂ ਇਸ ਬਲੌਗ ਵਿੱਚ ਹਰ ਚੀਜ਼ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕਰ ਸਕਦਾ।

ਲੋੜਾਂ

ਪ੍ਰੋਜੈਕਟ ਦੀਆਂ ਲੋੜਾਂ ਦੀ ਧਿਆਨਪੂਰਵਕ ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਹੇਠ ਲਿਖੇ ਜਰੂਰੀ ਮਾਪਦੰਡ ਤੈਅ ਕੀਤੇ ਜੋ ਕਿਸੇ ਵੀ ORM ਹੱਲ ਨੂੰ ਪੂਰਾ ਕਰਨਾ ਚਾਹੀਦਾ ਸੀ:

  • ਜਾਵਾਸਕ੍ਰਿਪਟ ਪੈਕੇਜ ਹੋਵੇ; ਕਿਉਂਕਿ ਕੋਡ ਦਾ ਜ਼ਿਆਦਾਤਰ ਹਿੱਸਾ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਲਿਖਿਆ ਗਿਆ ਹੈ
  • Postgres ਅਤੇ ਇਸ ਦੀਆਂ ਜ਼ਿਆਦਾਤਰ ਵਿਸੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਮਰਥਨ ਕਰੇ
  • ਇਸਦੀ ਪ੍ਰਦਰਸ਼ਨ ਸ਼ੁਰੂਆਤੀ ਤੌਰ ‘ਤੇ Mongoose ਦੇ ਸਮਾਨ ਜਾਂ ਉਸ ਤੋਂ ਚੰਗੀ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ
  • ਖੁੱਲਾ ਸੋর্স ਹੋਵੇ ਅਤੇ ਮੈਨਟੇਨ ਕੀਤਾ ਗਿਆ ਹੋਵੇ

ORMs

ਬਹੁਤ ਖੋਜ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਮੈਂ ਨਿਰਣੈ ਕੀਤਾ ਕਿ ਜਿਹੜੇ ਤਿੰਨ ORM ਮੇਰੀਆਂ ਲੋੜਾਂ ਨਾਲ ਫਿੱਟ ਹੁੰਦੇ ਹਨ ਉਹ ਹਨ: Sequelize, Prisma, ਅਤੇ TypeORM. ਅੰਤ ਵਿੱਚ, ਮੈਂ صرف Sequelize ਅਤੇ Prisma ‘ਤੇ ਧਿਆਨ ਕੇਂਦ੍ਰਿਤ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ ਕਿਉਂਕਿ ਡੈਡਲਾਈਨ ਦੇ ਕਾਰਨ ਮੈਂ ਤਿੰਨ ਵੱਖ-ਵੱਖ ORM ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਟੈਸਟ ਕਰਨ ਲਈ ਸਮਾਂ ਨਹੀਂ ਰੱਖਦਾ ਸੀ।

ਟੈਸਟਿੰਗ ਵਾਤਾਵਰਣ

ਮੇਰੇ ਟੈਸਟਿੰਗ ਵਾਤਾਵਰਣ ਲਈ, ਮੈਂ Docker ਰਾਹੀਂ Postgres ਚਲਾਇਆ। ਮੈਂ ਸਾਡਾ ਸਭ ਤੋਂ ਵੱਡਾ ਅਤੇ ਵੱਧ ਜਟਿਲ ਡੈਟਰਸੈਟ ਲਿਆ, ਇਸਨੂੰ ਡੌਕੂਮੈਂਟ ਸਟ੍ਰਕਚਰ ਤੋਂ ਟੇਬਲ ਸਟ੍ਰਕਚਰ ਵਿੱਚ ਬਦਲਿਆ, ਅਤੇ ਇਹ ਮੇਰੇ ਲੋਕਲ Postgres ਇੰਸਟੈਂਸ ਵਿੱਚ ਜੋੜਿਆ। ਮੈਂ ਡੈਟਰਸੈਟ ਨੂੰ ਕਾਲਮਾਂ, ਇੱਕ-ਤੋਂ-ਇੱਕ ਸੰਬੰਧਾਂ, ਇੱਕ-ਤੋਂ-ਬਹੁ ਸੰਬੰਧਾਂ, ਅਤੇ ਕੁਝ JSONB ਕਾਲਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਬਦਲਿਆ।

ਉਥੋਂ ਤੋਂ, ਮੈਂ ਜਾਵਾਸਕ੍ਰਿਪਟ ਕੋਡ ਲਿਖਦਾ ਜੋ ਉਸ ਖਾਸ ORM ਨੂੰ ਵਰਤਦਾ ਸੀ ਅਤੇ ਮਾਪਦਾ ਸੀ:

  • ਇੱਕ ਐਂਟਰੀ ਬਣਾਉਣ ਵਿੱਚ ਕਿੰਨਾ ਸਮਾਂ ਲੱਗਦਾ ਹੈ
  • ਇੱਕ ਐਂਟਰੀ ਅੱਪਡੇਟ ਕਰਨ ਵਿੱਚ ਕਿੰਨਾ ਸਮਾਂ ਲੱਗਦਾ ਹੈ
  • ਨੇਸਟਡ ਐਂਟਰੀ (ਰਿਸ਼ਤਾ ਅਤੇ/ਜਾਂ JSON ਵਿੱਚ ਕੀ-ਵੈਲਯੂ) ਅੱਪਡੇਟ ਕਰਨ ਵਿੱਚ ਕਿੰਨਾ ਸਮਾਂ ਲੱਗਦਾ ਹੈ
  • ਇੱਕ ਐਂਟਰੀ ਮਿਟਾਉਣ ਵਿੱਚ ਕਿੰਨਾ ਸਮਾਂ ਲੱਗਦਾ ਹੈ
  • ਇੱਕ ਐਂਟਰੀ ਨੂੰ ਕਵੈਰੀ/ਪਾਉਣ ਵਿੱਚ ਕਿੰਨਾ ਸਮਾਂ ਲੱਗਦਾ ਹੈ

ਮੈਂ ਹਰ ORM ਟੈਸਟ ਵਾਤਾਵਰਣ ਲਈ ਰਿਪੋ ਬਣਾਏ। ਮੈਂ ਇਹ ਰਿਪੋ ਸਾਂਝੇ ਕਰਨਾ ਚਾਹੂਂਦਾ ਸੀ ਪਰ ਇਹ ਤਕਨੀਕੀ ਤੌਰ ‘ਤੇ eBay ਦੀ ਮਲਕੀਅਤ ਹਨ, ਇਸ ਲਈ ਮੈਂ ਉਹ ਸਾਂਝੇ ਨਹੀਂ ਕਰ ਸਕਦਾ।

ਨਤੀਜੇ

ਲਗਭਗ 15 ਮਈ, 2023 ਨੂੰ, ਮੈਂ ਨਿਰਣੈ ਕੀਤਾ ਕਿ Sequelize ਸਾਡੇ ਉਪਯੋਗ ਕੇਸ ਲਈ ਵਧੀਆ ORM ਸੀ ਅਤੇ ਇਹ MongoDB ਤੋਂ Postgres ਲਈ ਸਾਡੇ ਮਾਈਗ੍ਰੇਸ਼ਨ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ। ਆਖ਼ਿਰਕਾਰ, ਮੈਂ Sequelize ਚੁਣਿਆ ਕਿਉਂਕਿ:

  • ਇਹ “ਵਾਕਈ ਖੁੱਲਾ ਸੋর্স” ਸੀ ਅਤੇ ਕਿਸੇ ਫੰਡਡ ਸਟਾਰਟਅਪ ਵੱਲੋਂ ਮੈਨਟੇਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਸੀ।
  • ਇਹ Postgres ਦੀਆਂ ਜ਼ਿਆਦਾਤਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
  • ਇਸਦੀ ਪ੍ਰਦਰਸ਼ਨ ਚੰਗੀ ਸੀ, ਖਾਸ ਕਰਕੇ Prisma ਦੇ ਮੁਕਾਬਲੇ।
  • ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਚੰਗਾ ਹੈ, ਹਾਲਾਂਕਿ Prisma ਦੀਆਂ ਡੌਕਸ जितਨੀ ਵਧੀਆ ਨਹੀਂ।

ਮੈਂ Sequelize ਨੂੰ ਚੁਣਿਆ, ਪਰ ਮੈਂ ਹਰ ORM ਲਈ ਫਾਇਦੇ ਅਤੇ ਨੁਕਸਾਨ ਦੀ ਸੂਚੀ ਵੀ ਤਿਆਰ ਕੀਤੀ ਜੋ ਮੈਂ ਟੈਸਟ ਕੀਤੇ ਤਾਂ ਜੋ ਇਹ ਲੋਕਾਂ ਨੂੰ ਮਦਦ ਕਰੇ ਕਿ ਕਿਸੇ ਦੇ ਕੇਸ ਲਈ Sequelize ਜਾਂ Prisma ਵਿੱਚੋਂ ਕਿਹੜਾ ਕੰਮ ਕਰੇਗਾ।

Sequelize ਦੇ ਫਾਇਦੇ ਅਤੇ ਨੁਕਸਾਨ

ਫਾਇਦੇ:

  • has a sync() function which automatically creates and handles tables for you -> sync() ਫੰਕਸ਼ਨ ਹੈ ਜੋ ਆਟੋਮੈਟਿਕ ਤੌਰ ‘ਤੇ ਟੇਬਲਾਂ ਨੂੰ ਬਣਾਉਂਦਾ ਅਤੇ ਹੈਂਡਲ ਕਰਦਾ ਹੈ
  • ਮੁਰਝੇੜ ਹੋਏ ਜੁੜਾਅ (ਨੇਸਟਡ ਡੇਟਾ) ਨੂੰ ਹੈਂਡਲ ਕਰ ਸਕਦਾ ਹੈ
  • ਬਹੁਤ ਸਾਰੇ ਫਿਲਟਰਿੰਗ ਵਿਕਲਪਾਂ ਨੂੰ ਸਮਰਥਨ ਕਰਦਾ ਹੈ (ਜਿਵੇਂ Regex)
  • ਮਾਡਲ/ਸਕੀਮਾ ਪ੍ਰਤਿਨਿਧਿਤਾ কੱਚੇ ਜਾਵਾਸਕ੍ਰਿਪਟ ਵਿੱਚ ਕਲਾਸਾਂ ਦੀ ਵਰਤੋਂ ਨਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੋ ਬਹੁਤ ਕਸਟਮਾਈਜ਼ੇਬਲ ਹੁੰਦੀਆਂ ਹਨ।
  • Sequelize ਤੁਹਾਡੇ ਚੁਣੇ database(s) ਲਈ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਹੈਂਡਲ ਕਰਦਾ ਹੈ।
  • Sequelize ਕਈ ਰੀਡ-ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਸਮਰਥਨ ਕਰਦਾ ਹੈ
  • ਕੱਚੀ SQL ਕਵੈਰੀਆਂ ਦਾ ਸਮਰਥਨ ਹੈ।
  • 15 ਮਈ, 2023 ਤੱਕ:
    • NPM ‘ਤੇ, Sequelize ਨੂੰ ਆਖ਼ਰੀ ਵਾਰੀ “14 days ago” ‘ਤੇ ਅਪਡੇਟ ਕੀਤਾ ਗਿਆ ਸੀ ਅਤੇ ਇਹਨੂੰ 1,505,835 ਹਫ਼ਤਾਵਾਰੀ ਡਾਊਨਲੋਡ ਮਿਲਦੇ ਹਨ।
    • GitHub ‘ਤੇ, Sequelize ਨੂੰ ਆਖ਼ਰੀ ਵਾਰੀ “yesterday” ‘ਤੇ ਅਪਡੇਟ ਕੀਤਾ ਗਿਆ ਸੀ, ਇਸਦੇ 4.2k Forks ਹਨ, ਅਤੇ 27.9k Stars ਹਨ।
    • Sequelize ਕੋਲ MIT ਲਾਇਸੈਂਸ ਹੈ ਅਤੇ ਇਹ 10 ਸਾਲ ਤੋਂ ਵੱਧ ਸਮੇਂ ਤੋਂ ਖੁੱਲਾ ਸੋর্স ਹੈ। ਇਸ ਲਈ, ਇਹ ਸੰਭਵਤ: ਭਵਿੱਖ ਨਜ਼ਦੀਕੀ ਸਮੇਂ ਲਈ ਖੁੱਲਾ ਸੋর্স ਹੀ ਰਹੇਗਾ।

ਨੁਕਸਾਨ:

  • ਮਾਡਲ/ਸਕੀਮਾ ਪ੍ਰਤਿਨਿਧਿਤਾ ਬਹੁਤ ਜਟਿਲ ਅਤੇ ਫੁੱਲ ਵਾਲੀ ਹੋ ਸਕਦੀ ਹੈ। ਉਦਾਹਰਣ ਲਈ, ਸਾਡੇ ਵੱਡੇ ਡੈਟਰਸੈਟ ਦੀ Mongoose ਪ੍ਰਤਿਨਿਧਿਤਾ ਲਗਭਗ 262 ਲਾਈਨਾਂ (ਖਾਲੀ ਥਾਵਾਂ ਸਮੇਤ) ਸੀ। ਉਹੀ ਡੈਟਰਸੈਟ Sequelize ਰਾਹੀਂ ਪ੍ਰਤਿਨਿਧਿਤ ਹੋਣ ਤੇ 564 ਲਾਈਨਾਂ (ਖਾਲੀ ਥਾਵਾਂ ਸਮੇਤ) ਹੋ ਗਿਆ।
  • ਕੁਝ ਕੇਸਾਂ ਵਿੱਚ Sequelize ਦਾ ਸਿੰਟੈਕਸ ਬਹੁਤ ਹੀ ਗੁੰਝਲਦਾਰ ਅਤੇ ਜਟਿਲ ਹੋ ਜਾਂਦਾ ਹੈ।
  • ਆਪਣੀ ਡੈਟਾਬੇਸ ਨੂੰ ਮਾਈਗ੍ਰੇਟ ਕਰਨਾ (ਇਸਦੇ ਸੋਧ) ਬਹੁਤ ਪਰੇਸ਼ਾਨ ਕਰਨ ਵਾਲਾ ਹੈ। ਤੁਸੀਂ sequelize-cli ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਜਾਵਾਸਕ੍ਰਿਪਟ ਮਾਈਗ੍ਰੇਸ਼ਨ ਟੈਮਪਲੇਟ ਸਕ੍ਰਿਪਟਾਂ ਜਨਰੇਟ ਕਰਨ ਲਈ। ਪਰ, ਇਹ ਲਗਭਗ ਸਾਰੇ ORMਾਂ ਵਿੱਚ ਇੱਕੋ ਹੀ ਹਾਲਤ ਬਣਦੀ ਦਿੱਸਦੀ ਹੈ। ਰਿਲੇਸ਼ਨਲ ਡੈਟਾਬੇਸ ਵਿੱਚ ਮਾਈਗ੍ਰੇਸ਼ਨ ਜ਼ਿਆਦਾਤਰ ਕੇਸਾਂ ਵਿੱਚ ਆਸਾਨ ਨਹੀਂ ਹੈ।
  • ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਇਤਨਾ ਵਧੀਆ ਨਹੀਂ ਹੈ। ਇਹ ਬਿਹਤਰ ਹੋਇਆ ਹੈ ਪਰ ਫਿਰ ਵੀ ਕੰਮ ਦੀ ਲੋੜ ਹੈ। ਪਰ ChatGPT ਵਰਗੇ ਟੂਲਾਂ ਦੇ ਨਾਲ, ਇਹ ਪਹਿਲਾਂ ਵਰਗੀ ਚਿੰਤਾ ਦੇਸ ਨਹੀਂ ਰਹੀ ਕਿਉਂਕਿ ChatGPT ਨੂੰ Sequelize ਦੀ ਸਮਝ ਸ਼ਾਇਦ ਦਹਾਕੇ ਦੀ ਮੌਜੂਦਗੀ ਕਾਰਨ ਚੰਗੀ ਹੈ।
  • Sequelize Prisma ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਟਾਈਪ-ਸੈਂਸਿਟਿਵ ਨਹੀਂ ਹੈ, ਜਿਸ ਨਾਲ ਮੁੱਦੇ ਹੋ ਸਕਦੇ ਹਨ।
  • ਇਹ TypeScript ਨੂੰ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ, ਜੋ ਮੇਰੇ ਪ੍ਰੋਜੈਕਟ ਲਈ ਸਮੱਸਿਆ ਨਹੀਂ ਸੀ ਪਰ ਬਹੁਤ ਸਾਰੇ ਹੋਰ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਇਹ ਵੱਡੀ ਸਮੱਸਿਆ ਹੋ ਸਕਦੀ ਹੈ।

Prisma ਦੇ ਫਾਇਦੇ ਅਤੇ ਨੁਕਸਾਨ

ਫਾਇਦੇ:

  • ਇਸ ਦੀ ਆਪਣੀ ਸਕੀਮਾ ਭਾਸ਼ਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਆਪਣੀ ਸਕੀਮਾ/ਮਾਡਲ ਨੂੰ ਹੋਰ ਆਸਾਨੀ ਅਤੇ ਸਫਾਈ ਨਾਲ ਬਣਾ ਸਕਦੇ ਹੋ। ਉਦਾਹਰਣ ਲਈ, ਸਾਡੇ ਵੱਡੇ ਡੈਟਰਸੈਟ ਦੀ Mongoose ਪ੍ਰਤਿਨਿਧਿਤਾ ਲਗਭਗ 262 ਲਾਈਨਾਂ (ਖਾਲੀ ਥਾਵਾਂ ਸਮੇਤ) ਸੀ। ਪਰ ਉਹੀ ਡੈਟਰਸੈਟ Prisma ਰਾਹੀਂ ਪ੍ਰਤਿਨਿਧਿਤ ਹੋਣ ਤੇ ਸਿਰਫ 221 ਲਾਈਨਾਂ (ਖਾਲੀ ਥਾਵਾਂ ਸਮੇਤ) ਸੀ।
  • Prisma ਕੋਲ ਇੱਕ CLI ਟੂਲ ਹੈ ਜੋ ਤੁਹਾਡੇ ਡੈਟਾਬੇਸ ਦੀ ਰਚਨਾ ਅਤੇ ਮਾਈਗ੍ਰੇਸ਼ਨ (ਸੋਧ) ਨੂੰ ਆਸਾਨ ਕਰਦਾ ਹੈ। ਜੋ ਕਿ ਬਹੁਤ ਸਰਲ ਹੈ। ਇਹ ਸਿੱਲਵਰ ਬੁੱਲਟ ਨਹੀਂ ਹੈ ਪਰ ਇਹ ਇਕ ORM ਵਿੱਚੋਂ ਹੁਣ ਤੱਕ ਦਿੱਸਿਆ ਸਭ ਤੋਂ ਵਧੀਆ ਚੀਜ਼ ਹੈ।
  • ਕੱਚੀ SQL ਕਵੈਰੀਆਂ ਦਾ ਸਮਰਥਨ ਹੈ।
  • Prisma ਲਈ ਕੋਡ ਸਾਫ਼ ਅਤੇ ਸਿੰਪਲ ਹੈ। ਤੁਹਾਨੂੰ ਫਿਰ ਵੀ Prisma ਦੇ ਸਿੰਟੈਕਸ ਨੂੰ ਸਿੱਖਣਾ ਪੈਂਦਾ ਹੈ ਪਰ ਇਹ Sequelize ਦੇ ਸਿੰਟੈਕਸ ਨਾਲੋਂ ਬਹੁਤ ਆਸਾਨੀ ਨਾਲ ਸਮਝ ਆਉਂਦਾ ਹੈ।
  • Prisma ਕੋਲ ਇੱਕ ਕਲਾਇੰਟ ਹੈ ਜੋ Node.js ਅਤੇ TypeScript ਲਈ ਆਟੋਮੈਟਿਕ ਤੌਰ ‘ਤੇ ਕਵੈਰੀ ਬਿਲਡਰ ਜਨਰੇਟ ਕਰਦਾ ਹੈ।
  • ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਬਹੁਤ ਬਹੁਤ ਵਧੀਆ ਅਤੇ ਸਾਫ਼ ਹੈ। ChatGPT ਹਾਲਾਂਕਿ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ ਪਰ ਇਹ Prisma ਬਾਰੇ Sequelize ਦੇ ਨਾਲੋਂ ਓਹਨਾ ਤੱਕ ਅਪ-ਟੂ-ਡੇਟ ਨਹੀਂ ਹੁੰਦਾ।
  • 15 ਮਈ, 2023 ਤੱਕ:
    • NPM ‘ਤੇ, Prisma ਨੂੰ ਆਖ਼ਰੀ ਵਾਰੀ “6 days ago” ‘ਤੇ ਅਪਡੇਟ ਕੀਤਾ ਗਿਆ ਸੀ ਅਤੇ ਇਹਨੂੰ 1,344,705 ਹਫ਼ਤਾਵਾਰੀ ਡਾਊਨਲੋਡ ਮਿਲਦੇ ਹਨ।
    • GitHub ‘ਤੇ, Prisma ਨੂੰ ਆਖ਼ਰੀ ਵਾਰੀ “3 hours ago” ‘ਤੇ ਅਪਡੇਟ ਕੀਤਾ ਗਿਆ ਸੀ, ਇਸਦੇ 1.1k Forks ਹਨ, ਅਤੇ 31.3k Stars ਹਨ।

ਨੁਕਸਾਨ:

  • Postgres ਲਈ Regex ਫਿਲਟਰਿੰਗ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਹੈ ਪਰ ਇਸ ਵਿੱਚ “contains”, “includes”, ਅਤੇ “startsWith” ਫਿਲਟਰ آپਸ਼ਨ ਹਨ।
  • ਮੇਰੇ ਟੈਸਟਿੰਗ ਅਨੁਸਾਰ, Prisma ਸਾਡੇ ਵੱਡੇ ਡੈਟਰਸੈਟ ਦੀਆਂ ਐਂਟਰੀਆਂ ਨੂੰ Postgres ਵਿੱਚ ਬਣਾਉਣ ਵਿੱਚ ਗਣਨਾਤਮਕ ਰੂਪ ਵਿੱਚ Dheere ਹੈ। Sequelize ਨੇ ਉਹ ਵੱਡੀਆਂ ਐਂਟਰੀਆਂ ਲਗਭਗ 2.26 ਸਕਿੰਟ ਪ੍ਰਤੀ ਐਂਟਰੀ (JSON ਫਾਇਲ) ਦੀ ਰਫ਼ਤਾਰ ਨਾਲ ਬਣਾਈਆਂ। ਜਦਕਿ Prisma ਦੀ ਰਫ਼ਤਾਰ ਲਗਭਗ 11.21 ਸਕਿੰਟ ਪ੍ਰਤੀ ਐਂਟਰੀ (JSON ਫਾਇਲ) ਸੀ। ਇਨ੍ਹਾਂ ਨਤੀਜਿਆਂ ਦੇ ਆਧਾਰ ‘ਤੇ, Prisma ਇਸ ਕਾਰਜ ਵਿੱਚ Sequelize ਨਾਲੋਂ ਲਗਭਗ 5 ਗੁਣਾ ਧੀਮਾ ਹੈ।
  • ਅਤਿ ਵੱਡੇ ਡੈਟਰਸੈਟ ਵਿੱਚ ਇਕ ਐਂਟਰੀ ਮਿਟਾਉਣ ‘ਤੇ ਲਗਭਗ 4 ਮਿੰਟ ਦੀ ਉਡੀਕ ਹੋਈ, ਜੋ ਬਹੁਤ ਹੀ ਖਰਾਬ ਹੈ।
  • Sequelize ਮੇਰੇ ਟੈਸਟ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਡੇ ਅਤੇ ਸਭ ਤੋਂ ਜਟਿਲ ਡੈਟਰਸੈਟ ਵਿੱਚ ਇੱਕ ਐਂਟਰੀ ਮਿਟਾਉਣ ਵਿੱਚ ਕਾਫੀ ਤੇਜ਼ ਸੀ। ਡੈਟਰਸੈਟ ਦੀ ਬਣਤਰ ਦੇ ਸੰਦਰਭ ਵਿੱਚ Sequelize ਦਾ Prisma ਉੱਤੇ ਖਾਸ ਫ਼ਾਇਦਾ ਨਹੀਂ ਸੀ। ਦੋਹਾਂ ਨੂੰ ਇਸ ਵੱਡੇ ਡੈਟਰਸੈਟ ਲਈ ਤਿੰਨ ਪੱਧਰਾਂ ਦੀ ਡੂੰਘਾਈ ਵਾਲੇ ਰਿਸ਼ਤੇ ਨਾਲ ਨਿਬਟਣਾ ਪਿਆ, ਇਸ ਲਈ ਮੈਂ ਕਹਾਂਗਾ ਕਿ ਇਹ ਇਕ ਨਿਆਂਸੰਗਤ ਤੁਲਨਾ ਸੀ।
  • Prisma ਇੱਕ ਸਟਾਰਟਅਪ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ Prisma ਇੱਕ ਲਾਭਕਾਰੀ ਕੰਪਨੀ ਹੈ ਜਿਸ ਨੇ $56.5 ਮਿਲੀਅਨ ਫੰਡਿੰਗ ਪ੍ਰਾਪਤ ਕੀਤੀ ਹੈ। ਇਹ ਜਾਣਦੇ ਹੋਏ, Prisma ਦਾ ਮੁੱਖ ORM ਕੋਡ/ਪੈਕੇਜ ਖੁੱਲਾ ਸੋর্স ਹੈ ਅਤੇ Apache-2.0 ਲਾਇਸੈਂਸ ਹੇਠ ਹੈ। ਇਹ ਚੰਗੀ ਗੱਲ ਹੈ, ਪਰ ਕਿਉਂਕਿ Prisma ਦੇ ਨਿਵੇਸ਼ਕ ਹਨ, ਮੈਂ ਹੈਰਾਨ ਨਹੀਂ ਹੋਵਾਂਗਾ ਜੇ ਉਹ ਆਪਣੀ ਲਾਇਸੈਂਸ ਸੰਦਰਭ ਵਿੱਚ MongoDB ਵਰਗਾ ਕੁਝ ਕਰਦੇ ਹਨ।

ਸਰੋਤ