Sequelize ਬਨਾਮ Prisma

ਸ਼ੁਰੂਆਤ

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

ਲੋੜਾਂ

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

  • JavaScript ਪੈਕੇਜ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ; ਕਿਉਂਕਿ ਜ਼ਿਆਦਾਤਰ ਕੋਡ JavaScript ਵਿੱਚ ਲਿਖਿਆ ਗਿਆ ਹੈ
  • Postgres ਅਤੇ ਇਸ ਦੀਆਂ ਜ਼ਿਆਦਾਤਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਮਰਥਨ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ
  • ਇਸ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਘੱਟੋ-ਘੱਟ Mongoose ਦੇ ਬਰਾਬਰ ਜਾਂ ਉਸ ਤੋਂ ਬਿਹਤਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ
  • ਓਪਨ ਸੋਰਸ ਅਤੇ ਸੰਭਾਲਿਆ ਹੋਇਆ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ

ORMs

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

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

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

ਉਥੋਂ ਅੱਗੇ, ਮੈਂ JavaScript ਕੋਡ ਲਿਖਾਂਗਾ ਜੋ ਉਸ ਖਾਸ ORM ਨੂੰ ਵਰਤੇ ਅਤੇ ਮਾਪ ਕਰਾਂ:

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

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

ਨਤੀਜੇ

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

  • ਇਹ “ਅਸਲ ਵਿੱਚ ਓਪਨ ਸੋਰਸ” ਸੀ ਅਤੇ ਕਿਸੇ ਫੰਡਡ ਸਟਾਰਟਅਪ ਦੁਆਰਾ ਸੰਭਾਲਿਆ ਨਹੀਂ ਜਾ ਰਿਹਾ ਸੀ।
  • Postgres ਦੀਆਂ ਜ਼ਿਆਦਾਤਰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸਮਰਥਨ ਦਿੰਦਾ ਸੀ।
  • ਇਸ ਦੀ ਕਾਰਗੁਜ਼ਾਰੀ ਚੰਗੀ ਸੀ, ਖ਼ਾਸ ਕਰਕੇ Prisma ਨਾਲ ਤੁਲਨਾ ਕਰਨ ਤੇ।
  • ਇਸ ਦੀ ਦਸਤਾਵੇਜ਼ੀਕਰਨ ਚੰਗੀ ਹੈ, ਹਾਲਾਂਕਿ Prisma ਦੀ ਡੌਕਸ ਜਿੰਨੀ ਵਧੀਆ ਨਹੀਂ।

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

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

ਫਾਇਦੇ:

  • ਇਸ ਵਿੱਚ ਇੱਕ sync() ਫੰਕਸ਼ਨ ਹੈ ਜੋ ਆਪਣੇ ਆਪ ਤੁਹਾਡੇ ਲਈ ਟੇਬਲਾਂ ਬਣਾਉਂਦਾ ਅਤੇ ਸੰਭਾਲਦਾ ਹੈ
  • ਜਟਿਲ joins (ਨੇਸਟਡ ਡਾਟਾ) ਨੂੰ ਸੰਭਾਲ ਸਕਦਾ ਹੈ
  • ਬਹੁਤ ਸਾਰੇ ਫਿਲਟਰਿੰਗ ਵਿਕਲਪਾਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ (ਜਿਵੇਂ ਕਿ Regex)
  • ਮਾਡਲ/ਸਕੀਮਾ ਪ੍ਰਤੀਨਿਧਿਤਾ ਕੱਚੇ JavaScript ਵਿੱਚ ਕਲਾਸਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੋ ਬਹੁਤ ਅਨੁਕੂਲਣਯੋਗ ਹਨ।
  • Sequelize ਤੁਹਾਡੇ ਚੁਣੇ ਹੋਏ ਡਾਟਾਬੇਸ(ਜ਼) ਲਈ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ।
  • Sequelize ਕਈ read-ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਸਮਰਥਨ ਦਿੰਦਾ ਹੈ
  • ਕੱਚੀਆਂ SQL ਕਵੈਰੀਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ।
  • 15 ਮਈ, 2023 ਤੱਕ:
    • NPM ‘ਤੇ, Sequelize ਆਖਰੀ ਵਾਰ “14 ਦਿਨ ਪਹਿਲਾਂ” ਅਪਡੇਟ ਹੋਇਆ ਸੀ ਅਤੇ ਇਸਦੇ 1,505,835 ਸਾਪਤਾਹਿਕ ਡਾਊਨਲੋਡ ਹਨ।
    • GitHub ‘ਤੇ, Sequelize ਆਖਰੀ ਵਾਰ “ਕੱਲ੍ਹ” ਅਪਡੇਟ ਹੋਇਆ ਸੀ, ਇਸਦੇ 4.2k Forks ਹਨ, ਅਤੇ 27.9k Stars ਹਨ।
    • Sequelize ਕੋਲ MIT ਲਾਇਸੈਂਸ ਹੈ ਅਤੇ ਇਹ 10 ਸਾਲਾਂ ਤੋਂ ਵੱਧ ਸਮੇਂ ਤੋਂ ਓਪਨ ਸੋਰਸ ਹੈ। ਇਸ ਲਈ ਇਹ ਸੰਭਾਵਨਾ ਹੈ ਕਿ ਨਜ਼ਦੀਕੀ ਭਵਿੱਖ ਲਈ ਇਹ ਓਪਨ ਸੋਰਸ ਹੀ ਰਹੇਗਾ।

ਨੁਕਸਾਨ:

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

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

ਫਾਇਦੇ:

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

ਨੁਕਸਾਨ:

  • Postgres ਲਈ Regex ਫਿਲਟਰਿੰਗ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਪਰ “contains”, “includes”, ਅਤੇ “startsWith” ਫਿਲਟਰ ਵਿਕਲਪ ਰੱਖਦਾ ਹੈ।
  • ਮੇਰੇ ਟੈਸਟਿੰਗ ਮੁਤਾਬਕ, Postgres ਵਿੱਚ ਸਾਡੇ ਵੱਡੇ ਡਾਟਾਸੈੱਟ ਦੀਆਂ ਐਂਟਰੀਆਂ ਬਣਾਉਣ ਵਿੱਚ Prisma ਕਾਫ਼ੀ ਹੌਲਾ ਹੈ। 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 ਵਾਲਾ ਰਾਹ ਅਪਣਾ ਲੈਣ।

ਸਰੋਤ