PracticU

יצירת מסד הנתונים מהקוד
Creating the Database

בלי כתוביותעם כתוביות
PracticU › קורס Entity Framework Core - עבודה עם מסד נתונים בדוט-נט › יצירת מסד הנתונים מהקוד Creating the Database
מילון מושגים:
מסד נתונים - אוסף מאורגן של נתונים המאוחסן כך שאפשר לשמור, לחפש, לעדכן ולשלוף אותו ביעילות, לרוב באמצעות שפת שאילתות.
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.
SSMS - הכלי הגרפי של מיקרוסופט לניהול SQL Server ולהרצת שאילתות (SQL Server Management Studio).
סכמה - המבנה הלוגי של מסד נתונים: הגדרת הטבלאות, העמודות, הסוגים והקשרים ביניהם.
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
סקריפט - קובץ המכיל רצף פקודות שמבוצעות על ידי מפרש, לרוב כדי להפוך משימות לאוטומטיות.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
דיבאג - תהליך של איתור, הבנה ותיקון תקלות בקוד, לעיתים בעזרת כלי שמאפשר לעצור ולעקוב אחר ריצת התוכנית.

יצירת מסד הנתונים מהקוד Creating the Database
יוצרים בפועל את מסד הנתונים מתוך המודלים וה-Context, באמצעות Migration ופקודות ב-Package Manager Console, ובודקים את התוצאה ב-SSMS.
השלבים העיקריים
1. חבילות נוספות: Install-Package Microsoft.EntityFrameworkCore.Tools ו-Install-Package Microsoft.EntityFrameworkCore.Design. אלה כלי פיתוח, לא שייכים לפרודקשן, ונדרשים לפקודות שיוצרות את הדאטאבייס.
2. Migration: גרסה של המודלים שמתארת סכמה של דאטאבייס. הפקודה Add-Migration עם שם (בהרצאה InitialCreation) מבצעת build, ולכן לא יכולות להיות שגיאות קומפילציה, ויוצרת תיקיית Migrations עם קבצים. יש בהם Up שיוצר את הטבלאות, את ה-Seed Rows, הקשרים והאינדקסים, ו-Down שמוחק אותם.
3. Migration לא יוצר דאטאבייס: הוא רק יוצר קבצים. לפני העדכון פותחים את SSMS ורואים שאין עדיין דאטאבייס.
4. Update-Database: לוקח את ה-Migration החדש ביותר ומחיל אותו על הדאטאבייס.
5. תיקון שגיאה: ההרצה הראשונה נכשלה, כי שרת SQL לא נמצא. הסיבה הייתה שגיאת הקלדה בשם SQLEXPRESS ב-Connection String. אחרי התיקון Update-Database הצליח.
6. בדיקה ב-SSMS: צריך לעשות Refresh, כי הוא לא מתרענן לבד. נוצר דאטאבייס GiftShop עם הטבלאות AgeGroups ו-Gifts, ועוד טבלת היסטוריית Migrations.
מה רואים בטבלאות
- ב-AgeGroups: המפתח הוא Identity (מספור אוטומטי מ-1), Name הוא nvarchar(20) ו-Not Null, וגם MinAge ו-MaxAge מסוג int. רשומות ה-Seed קיימות, ורשומה שנוספה ידנית קיבלה ID 5.
- ב-Gifts: Name הוא nvarchar(100), Price הוא money, ו-AgeGroupID מסוג int עם Allow Null. אין עדיין רשומות.
יצירת סקריפט SQL
Script-Migration יוצר קובץ SQL מה-Migration, כדי להריץ על שרת אחר, למשל בפרודקשן. כדאי להוסיף -Output עם נתיב, אחרת הקובץ נוצר בתיקיית bin/Debug. בהרצאה: קובץ GiftShop.sql בתיקיית Migrations.
אחרי ההרצאה תוכלו ליצור Migration, להחיל אותו, ולהפיק ממנו גם סקריפט SQL.
השיעור הבא בקורס: הוספת מודלים ועדכון מסד הנתונים

פרקי ההרצאה: יצירת מסד הנתונים מהקוד Creating the Database

  1. 00:00

    יצירת הדאטאבייס והתקנת ה-Tools

  2. 01:24

    הפקודה Add-Migration

  3. 02:18

    קבצי המיגריישן ופעולות Up ו-Down

  4. 03:28

    הפקודה Update-Database

  5. 04:16

    שגיאת Connection String ביצירה

תמלול ההרצאה: יצירת מסד הנתונים מהקוד Creating the Database

הטקסט המלא של הדקות הראשונות בהרצאה «יצירת מסד הנתונים מהקוד Creating the Database» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אז אחרי שבנינו את המודלים ואת הקונטקסט אנחנו יכולים לגשת ולייצר מהם את הדאטאבייס. איך עושים את זה? דבר ראשון אנחנו צריכים לגשת לחלונית ה-package-manager-console ולצרף שני נוגטס נוספים שמסוגלים לבצע את כל הפעולות האלה.

  2. 00:22

    בואו ניגש ל-install package ואנחנו רוצים לצרף נוגט ראשון Microsoft.entityframeworkcore.tools.enter. והפקודה הבאה זה Install Package Microsoft.entityframeworkcore.design.

  3. 00:43

    enter. אז ה-Tools האלה, בואו נסתכל עליהם כאן, זה בעצם כלים של פיתוח, אני לא באמת צריך אותם עבור פרויקט שהוא לא קשור ל-Development, זה לא משהו ששייך לפרודקשן אבל אני כן צריך אותם כאשר אני רוצה לבצע פקודות בפקאג' מנאג'ר שמייצרות את הדאטאבייס.

  4. 01:05

    ננקה רגע את הפקאג' מנאג'ר קונסול ופקודה ראשונה נקראת Add עקף Migration מה זה Migration? Migration זה כאילו גרסה ספציפית של מודלים שמתארים סכמה של דאטאבייס כאשר אנחנו מבצעים Add מיגריישן אז אנחנו הולכים לייצר את הגרסה הנוכחית שקיימת במודלים האלה עבור יצירת הדאטאבייס.

  5. 01:34

    יכול להיות שבהמשך אנחנו כמובן הולכים לראות את זה, נשנה את המודלים או נוסיף למודלים ואז נרצה לעדכן את הדאטאבייס, נצטרך לבנות מיגריישן נוסף, כלומר סכמה נוספת איך הדאטאבייס אמור להיראות.

  6. 01:47

    כל פעם שאנחנו מבצעים אד מיגריישן אנחנו חייבים לתת לו שם. בגלל שזה המיגריישן הראשון שאני מייצר, אני נותן לו את השם initial creation אפשר לתת לו initial create initial migration in it מה שבא לכם וזאת הפקודה והוא מייצר לנו מיגרשן שימו לב קודם כל הוא עושה build זאת אומרת שלא יכול להיות אסור שיהיה פה שגיאות

  7. 02:07

    קומפילציה הוא כותב לי build succeeded ומייצר את המיגרציה הנה יש לנו פה תיקייה שנקראת migrations שנוצרה לנו ובתוכה הוא יצר לנו סדרה של קבצים שמתארים את המיגרשן אוקיי, יש לנו אפשרות לבצע up, זה בעצם העלאת מיגריישן, או down, שזה הורדת מיגריישן. זאת אומרת שאם אני אבצע

  8. 02:32

    up, לא היה לי שום דאטאבייס ואני מייצר את ה-initial create, אז זה מה שהוא מבצע, הוא יוצר את הטבלה age groups, יוצר את הטבלה gifts ובלה בלה בלה בלה בלה.

  9. 02:46

    הנה הוא מוסיף לפה את ה-insert seed rows ומייצר את ריליישנשיפס ביניהם ואת האינדקסים וכדומה אם אנחנו נבצע דאון למיגריישן אז הוא פשוט מוחק אותם זה initial migration לא היה לי לפני זה שום דבר אז הוא פשוט עושה דרופ לטבלאות ולא יהיה לי בכלל טבלאות בדטאבייס. אז יש לנו פה כל מיני קבצים שמתארים את המיגריישן

  10. 03:08

    אבל אנחנו לא באמת מתעסקים איתם אנחנו מתעסקים יותר עם פקודות של הpackage manager console אז הפקודה הראשונה שראינו זה add migration ואני נותן לה שם.

  11. 03:22

    בואו נבצע פה clear, ננקה את הכל ואנחנו רוצים לתת פקודה נוספת שיוצרת את הדאטאבייס. זה שיצרנו מיגריישן לא יוצר לי את הדאטאבייס, הוא רק יוצר לי את הקבצים האלה.

  12. 03:33

    שימו לב שיש לנו כאן את התאריך שהמיגריישן בדיוק נוצר ואנחנו לפני שניצר את הדאטאבייס בואו נפתח את ssms בכדי לראות מה יש בו עכשיו ומה הולך להיות בו אחרי שנגרום למיגריישן להיות בדאטאבייס.

  13. 03:52

    אז הנה יש לנו פה את החלון התחברות הראשוני, בואו נעשה קונקט, נפתח את הדאטאבייסס ואין לנו כרגע דאטאבייסס. בסדר?

  14. 04:00

    בואו נחזור לויזואל סטודיו ונלך לפקודה הבאה. הפקודה הבאה היא פקודה מאוד פשוטה והיא נקראת Update Database.

  15. 04:07

    Update Database הולך לפה ל-Migrations ומחפש את המיגרציה הכי חדשה שיש ופשוט שופך אותה לדאטאבייס. Enter.

  16. 04:16

    עוד פעם הוא עושה לי build, build succeeded ויש לנו פה שגיאה. A network-related or instant-specified error queue while establishing a connection to the SQL Server.

  17. 04:28

    The server has not found. הוא לא מוצא את ה-server. למה הוא לא מוצא את ה-server? זה בעצם שגיאה של Connection String. יכול להיות שטעיתי ב-Connection String.

  18. 04:42

    Connection String נמצאת פה, בואו נראה רגע. Server שווה נקודה, זה המחשב הנוכחי שלי, נכון? כשעשינו, כשעשינו קונקט אז הנה נקודה, אני

לקורס המלא: קורס Entity Framework Core

ההרצאה הקודמת: אתחול רשומות - Initializing Seed Rows

ההרצאה הבאה: הוספת מודלים - ועדכון מסד הנתונים

הרצאות קשורות מקורסים אחרים

  • יצירת Interceptor - עבור מסד הנתונים
  • Creating Variables
  • יצירת פקדים ואילוצים מהקוד בצורה דינמית
  • סיכום פרק Azure Database

קורסים נוספים במסלול

  • קורס דוט-נט - NET Core. - עם Rest API
  • קורס ASP.NET
  • קורס MVC
  • קורס Git ו-GitHub עם Visual Studio