Aracılığıyla paylaş


Öğretici: Azure Static Web Apps'te Azure SQL veritabanı bağlantısı ekleme (önizleme)

Bu öğreticide, bir Azure SQL veritabanını statik web uygulamanıza bağlamayı öğreneceksiniz. Yapılandırıldıktan sonra, arka uç kodu yazmak zorunda kalmadan verileri işlemek için yerleşik /data-api uç noktaya REST veya GraphQL istekleri yapabilirsiniz.

Kolaylık olması açısından bu öğreticide yerel geliştirme amacıyla Azure veritabanının nasıl kullanılacağı gösterilmektedir, ancak yerel geliştirme gereksinimleriniz için yerel bir veritabanı sunucusu da kullanabilirsiniz.

Not

Bu öğreticide Azure SQL'in nasıl kullanılacağı gösterilmektedir. Başka bir veritabanı kullanmak isterseniz Azure Cosmos DB, MySQL veya PostgreSQL öğreticilerine bakın.

Geliştirici araçları konsol penceresinde Azure SQL sonuçlarını gösteren web tarayıcısı.

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Azure SQL veritabanını statik web uygulamanıza bağlama
  • Veri oluşturma, okuma, güncelleştirme ve silme

Önkoşullar

Bu öğreticiyi tamamlamak için mevcut bir Azure SQL veritabanınız ve statik web uygulamanız olması gerekir.

Kaynak Açıklama
Azure SQL Veritabanı Henüz bir veritabanınız yoksa, tek veritabanı oluşturma kılavuzundaki adımları izleyin.
Mevcut statik web uygulaması Henüz yoksa, başlangıç kılavuzundaki adımları izleyin.

Veritabanınızı Azure Static Web Apps veritabanı bağlantı özelliğiyle çalışacak şekilde yapılandırarak başlayın.

Veritabanı bağlantısını yapılandırma

Veritabanı bağlantılarının çalışması için Azure Static Web Apps'in veritabanınıza ağ erişimi olmalıdır. Ayrıca, yerel geliştirme için bir Azure veritabanı kullanmak için veritabanınızı kendi IP adresinizden gelen isteklere izin verecek şekilde yapılandırmanız gerekir.

  1. Azure portalında Azure SQL Server'ınıza gidin.

  2. Güvenlik bölümünde Ağ'ı seçin.

  3. Genel erişim sekmesinin altında, Genel ağ erişimi'nin yanındaki Seçili ağlar'ı seçin.

  4. Güvenlik duvarı kuralları bölümünde İstemcinizi ekleyin IPv4 adresi düğmesini seçin. Bu adım, bu veritabanını yerel geliştirmeniz için kullanabilmenizi sağlar.

  5. Özel Durumlar bölümünde Azure hizmetlerinin ve kaynaklarının bu sunucuya erişmesine izin ver onay kutusunu seçin. Bu adım, dağıtılan Statik Web Uygulamaları kaynağınızın veritabanınıza erişmesini sağlar.

  6. Kaydet'i seçin.

Yerel geliştirme için veritabanı bağlantı dizesi alma

Yerel geliştirme için Azure veritabanınızı kullanmak için veritabanınızın bağlantı dizesi almanız gerekir. Geliştirme amacıyla yerel veritabanı kullanmayı planlıyorsanız bu adımı atlayabilirsiniz.

  1. Azure portalında Azure SQL Server'ınıza gidin.

  2. Ayarlar bölümünde SQL veritabanları'nı seçin.

  3. Bu öğretici için oluşturduğunuz SQL veritabanını seçin.

  4. Ayarlar bölümünde Bağlantı dizeleri'ni seçin

  5. ADO.NET (SQL kimlik doğrulaması) kutusundan bağlantı dizesi kopyalayın ve bir metin düzenleyicisinde bir kenara bırakın.

bağlantı dizesi yer tutucuyu {your_password} parolanızla değiştirdiğinden emin olun.

Örnek veri oluşturma

Örnek bir tablo oluşturun ve öğreticiyle eşleşecek örnek verilerle bu tabloyu dağıtın.

  1. Sol gezinti penceresinde Sorgu düzenleyicisi'ni seçin.

  2. Entra Id hesabınızla veya sunucunun kullanıcı adı ve parolası ile sunucuda oturum açın.

  3. adlı MyTestPersonTableyeni bir tablo oluşturmak için aşağıdaki betiği çalıştırın.

    CREATE TABLE [dbo].[MyTestPersonTable] (
        [Id] INT IDENTITY (1, 1) NOT NULL,
        [Name] VARCHAR (25) NULL,
        PRIMARY KEY (Id)
    );
    
  4. MyTestPersonTable tablosuna veri eklemek için aşağıdaki betiği çalıştırın.

    INSERT INTO [dbo].[MyTestPersonTable] (Name)
    VALUES ('Sunny');
    
    INSERT INTO [dbo].[MyTestPersonTable] (Name)
    VALUES ('Dheeraj');
    

Statik web uygulamasını yapılandırma

Bu öğreticinin geri kalanı, veritabanı bağlantılarını yerel olarak kullanmak için statik web uygulamanızın kaynak kodunu düzenlemeye odaklanır.

Önemli

Aşağıdaki adımlarda, başlangıç kılavuzunda oluşturulan statik web uygulamasıyla çalıştığınız varsayılır. Farklı bir proje kullanıyorsanız aşağıdaki git komutlarını dal adlarınızla eşleşecek şekilde ayarladığınızdan emin olun.

  1. Dala main geçin.

    git checkout main
    
  2. kullanarak git pullyerel sürümünüzü GitHub'da bulunanlarla eşitleyin.

    git pull origin main
    

Veritabanı yapılandırma dosyasını oluşturma

Ardından, statik web uygulamanızın veritabanıyla arabirim oluşturmak için kullandığı yapılandırma dosyasını oluşturun.

  1. Terminalinizi açın ve bağlantı dizesi tutmak için yeni bir değişken oluşturun. Söz dizimi, kullandığınız kabuk türüne bağlı olarak değişebilir.

    export DATABASE_CONNECTION_STRING='<YOUR_CONNECTION_STRING>'
    

    değerini bir metin düzenleyicisinde ayırdığınız bağlantı dizesi değeriyle değiştirdiğinizden <YOUR_CONNECTION_STRING> emin olun.

  2. Statik Web Uygulamaları CLI'sını yüklemek veya güncelleştirmek için npm kullanın. Durumunuz için en uygun komutu seçin.

    Yüklemek için kullanın npm install.

    npm install -g @azure/static-web-apps-cli
    

    Güncelleştirmek için kullanın npm update.

    npm update
    
  3. swa db init Veritabanı yapılandırma dosyası oluşturmak için komutunu kullanın.

    swa db init --database-type mssql
    

    init komutu swa-db-connections klasöründe staticwebapp.database.config.json dosyasını oluşturur.

  4. Bu örneği, oluşturduğunuz staticwebapp.database.config.json dosyaya yapıştırın.

{
  "$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
  "data-source": {
    "database-type": "mssql",
    "options": {
      "set-session-context": false 
    },
    "connection-string": "@env('DATABASE_CONNECTION_STRING')"
  },
  "runtime": {
    "rest": {
      "enabled": true,
      "path": "/rest"
    },
    "graphql": {
      "allow-introspection": true,
      "enabled": true,
      "path": "/graphql"
    },
    "host": {
      "mode": "production",
      "cors": {
        "origins": ["http://localhost:4280"],
        "allow-credentials": false
      },
      "authentication": {
        "provider": "StaticWebApps"
      }
    }
  },
  "entities": {
    "Person": {
      "source": "dbo.MyTestPersonTable",
      "permissions": [
        {
          "actions": ["*"],
          "role": "anonymous"
        }
      ]
    }
  }
}

Sonraki adıma geçmeden önce, yapılandırma dosyasının farklı yönlerini açıklayan aşağıdaki tabloyu gözden geçirin. Yapılandırma dosyası ve öğe düzeyinde güvenlik için ilişkiler ve ilkeler gibi işlevlerle ilgili tam belgeler için Data API Builder belgelerine bakın.

Özellik Açıklama
Veritabanı bağlantısı Geliştirme aşamasında çalışma zamanı, yapılandırma dosyasındaki bağlantı dizesi değerinden bağlantı dizesi okur. bağlantı dizesi doğrudan yapılandırma dosyasında belirtebilirsiniz ancak en iyi yöntem bağlantı dizesi yerel bir ortam değişkeninde depolamaktır. Gösterimi aracılığıyla yapılandırma dosyasındaki ortam değişkeni değerlerine @env('DATABASE_CONNECTION_STRING') başvurabilirsiniz. bağlantı dizesi değerinin üzerine, veritabanınızı bağladığınızda toplanan bilgilerle dağıtılan site için Statik Web Uygulamaları tarafından yazılır.
API uç noktası REST uç noktası üzerinden /data-api/rest kullanılabilirken GraphQL uç noktası bu yapılandırma dosyasında yapılandırıldığı gibi üzerinden /data-api/graphql kullanılabilir. REST ve GraphQL yollarını yapılandırabilirsiniz, ancak /data-api ön ek yapılandırılamaz.
API Güvenliği Ayarlar, runtime.host.cors API'ye istekte bulunabilecek izin verilen kaynakları tanımlamanıza olanak sağlar. Bu durumda, yapılandırma bir geliştirme ortamını yansıtır ve konumu izin http://localhost:4280 verilenler listesine ekler.
Varlık modeli REST API'deki yollar aracılığıyla veya GraphQL şemasındaki türler olarak kullanıma sunulan varlıkları tanımlar. Bu durumda, Kişi adı, veritabanı şeması ve tablo eşlemesi iken entities.<NAME>.source uç noktaya gösterilen addır. API uç noktası adının tablo adıyla aynı olması gerekmeyen noktalara dikkat edin.
Varlık güvenliği Dizide entity.<NAME>.permissions listelenen izin kuralları, bir varlığın yetkilendirme ayarlarını denetler. Rolleri olan bir varlığın güvenliğini, rollerle yolları güvenli hale getirme yönteminizle aynı şekilde sağlayabilirsiniz.

Not

Sitenizi dağıttığınızda yapılandırma dosyasının connection-string, host.modeve graphql.allow-introspection özelliklerinin üzerine yazılır. Veritabanınızı Statik Web Apps kaynağınıza bağladığınızda toplanan kimlik doğrulama ayrıntılarıyla bağlantı dizesi üzerine yazılır. host.mode özelliği olarakproductiongraphql.allow-introspection, özelliği ise olarak falseayarlanır. Bu geçersiz kılmalar, geliştirme ve üretim iş yükleriniz genelinde yapılandırma dosyalarınızda tutarlılık sağlarken, veritabanı bağlantıları etkinleştirilmiş Statik Web Apps kaynağınızın güvenli ve üretime hazır olmasını sağlar.

Statik web uygulaması veritabanına bağlanacak şekilde yapılandırıldığında bağlantıyı doğrulayabilirsiniz.

Giriş sayfasını güncelleştirme

index.html dosyasındaki body etiketler arasındaki işaretlemeyi aşağıdaki HTML ile değiştirin.

<h1>Static Web Apps Database Connections</h1>
<blockquote>
    Open the console in the browser developer tools to see the API responses.
</blockquote>
<div>
    <button id="list" onclick="list()">List</button>
    <button id="get" onclick="get()">Get</button>
    <button id="update" onclick="update()">Update</button>
    <button id="create" onclick="create()">Create</button>
    <button id="delete" onclick="del()">Delete</button>
</div>
<script>
    // add JavaScript here
</script>

Uygulamayı yerel olarak başlatma

Artık web sitenizi çalıştırabilir ve veritabanındaki verileri doğrudan işleyebilirsiniz.

  1. Veritabanı yapılandırmasıyla statik web uygulamasını başlatın.

    swa start --data-api-location swa-db-connections
    

CLI başlatıldığından, staticwebapp.database.config.json dosyasında tanımlandığı gibi uç noktalar aracılığıyla veritabanınıza erişebilirsiniz.

http://localhost:4280/data-api/rest/<ENTITY_NAME> nokta , PUTve POST kabul eder GETve DELETE veritabanındaki verileri işlemeyi istemektedir.

http://localhost:4280/data-api/graphql nokta GraphQL sorgularını ve mutasyonlarını kabul eder.

Verileri işleme

Aşağıdaki framework-agnostic komutları veritabanınızda tam CRUD işlemlerinin nasıl yapılacağını gösterir.

Her işlevin çıkışı tarayıcının konsol penceresinde görüntülenir.

CMD/CTRL + SHIFT + I tuşlarına basarak geliştirici araçlarını açın ve Konsol sekmesini seçin.

Tüm öğeleri listeleme

index.html etiketleri arasına script aşağıdaki kodu ekleyin.

async function list() {
  const endpoint = '/data-api/rest/Person';
  const response = await fetch(endpoint);
  const data = await response.json();
  console.table(data.value);
}

Bu örnekte:

  • API için fetch varsayılan istek fiilini GETkullanır.
  • Yanıt yükündeki veriler özelliğinde value bulunur.
async function list() {

  const query = `
      {
        people {
          items {
            Id
            Name
          }
        }
      }`;

  const endpoint = "/data-api/graphql";
  const response = await fetch(endpoint, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ query: query })
  });
  const result = await response.json();
  console.table(result.data.people.items);
}

Bu örnekte:

  • GraphQL sorgusu veritabanından Id ve Name alanlarını seçer.
  • Sunucuya geçirilen istek, özelliğin query sorgu tanımını barındırdığı bir yük gerektirir.
  • Yanıt yükündeki veriler özelliğinde data.people.items bulunur.

Sayfayı yenileyin ve Liste düğmesini seçin.

Tarayıcının konsol penceresinde artık veritabanındaki tüm kayıtları listeleyen bir tablo görüntülenir.

Kimlik Veri Akışı Adı
1 Güneşli
2 Dheeraj

İşte tarayıcınızda nasıl görünmesi gerektiğinin ekran görüntüsü.

Geliştirici araçları konsol penceresinde veritabanı seçiminin sonuçlarını gösteren web tarayıcısı.

Kimliğe göre alma

index.html etiketleri arasına script aşağıdaki kodu ekleyin.

async function get() {
  const id = 1;
  const endpoint = `/data-api/rest/Person/Id`;
  const response = await fetch(`${endpoint}/${id}`);
  const result = await response.json();
  console.table(result.value);
}

Bu örnekte:

  • Uç nokta ile /person/Idson eklenmiştir.
  • Kimlik değeri uç nokta konumunun sonuna eklenir.
  • Yanıt yükündeki veriler özelliğinde value bulunur.
async function get() {

  const id = 1;

  const gql = `
    query getById($id: Int!) {
      person_by_pk(Id: $id) {
        Id
        Name
      }
    }`;

  const query = {
    query: gql,
    variables: {
      id: id,
    },
  };

  const endpoint = "/data-api/graphql";
  const response = await fetch(endpoint, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(query),
  });
  const result = await response.json();
  console.table(result.data.person_by_pk);
}

Bu örnekte:

  • GraphQL sorgusu veritabanından Id ve Name alanlarını seçer.
  • Sunucuya geçirilen istek, özelliğin query sorgu tanımını barındırdığı bir yük gerektirir.
  • Yanıt yükündeki veriler özelliğinde data.person_by_pk bulunur.

Sayfayı yenileyin ve Al düğmesini seçin.

Tarayıcının konsol penceresinde artık veritabanından istenen tek kaydın listelendiği bir tablo görüntülenir.

Kimlik Veri Akışı Adı
1 Güneşli

Güncelleştir

index.html etiketleri arasına script aşağıdaki kodu ekleyin.

Statik Web Uygulamaları hem hem PATCH de fiillerini PUT destekler. İstek PUT kaydın tamamını güncelleştirirken PATCH kısmi bir güncelleştirme yapar.

async function update() {

  const id = 1;
  const data = {
    Name: "Molly"
  };

  const endpoint = '/data-api/rest/Person/Id';
  const response = await fetch(`${endpoint}/${id}`, {
    method: "PUT",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(data)
  });
  const result = await response.json();
  console.table(result.value);
}

Bu örnekte:

  • Uç nokta ile /person/Id/son eklenmiştir.
  • Kimlik değeri uç nokta konumunun sonuna eklenir.
  • REST fiili, veritabanı kaydını güncelleştirmektir PUT .
  • Yanıt yükündeki veriler özelliğinde value bulunur.
async function update() {

  const id = 1;
  const data = {
    Name: "Molly"
  };

  const gql = `
    mutation update($id: Int!, $item: UpdatePersonInput!) {
      updatePerson(Id: $id, item: $item) {
        Id
        Name
      }
    }`;

  const query = {
    query: gql,
    variables: {
      id: id,
      item: data
    } 
  };

  const endpoint = "/data-api/graphql";
  const res = await fetch(endpoint, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(query)
  });

  const result = await res.json();
  console.table(result.data.updatePerson);
}

Bu örnekte:

  • GraphQL sorgusu veritabanından Id ve Name alanlarını seçer.
  • query nesnesi özelliğinde GraphQL sorgusunu query tutar.
  • GraphQL işlevine bağımsız değişken değerleri özelliği aracılığıyla query.variables geçirilir.
  • Sunucuya geçirilen istek, özelliğin query sorgu tanımını barındırdığı bir yük gerektirir.
  • Yanıt yükündeki veriler özelliğinde data.updatePerson bulunur.

Sayfayı yenileyin ve Güncelleştir düğmesini seçin.

Tarayıcının konsol penceresinde artık güncelleştirilmiş verileri gösteren bir tablo görüntülenir.

Kimlik Veri Akışı Adı
1 Molly

Oluşturma

index.html etiketleri arasına script aşağıdaki kodu ekleyin.

async function create() {

  const data = {
    Name: "Pedro"
  };

  const endpoint = `/data-api/rest/Person/`;
  const response = await fetch(endpoint, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(data)
  });
  const result = await response.json();
  console.table(result.value);
}

Bu örnekte:

  • Uç nokta ile /person/son eklenmiştir.
  • REST fiili, veritabanı kaydı eklemektir POST .
  • Yanıt yükündeki veriler özelliğinde value bulunur.
async function create() {

  const data = {
    Name: "Pedro"
  };

  const gql = `
    mutation create($item: CreatePersonInput!) {
      createPerson(item: $item) {
        Id
        Name
      }
    }`;

  const query = {
    query: gql,
    variables: {
      item: data
    } 
  };

  const endpoint = "/data-api/graphql";
  const result = await fetch(endpoint, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(query)
  });

  const response = await result.json();
  console.table(response.data.createPerson);
}

Bu örnekte:

  • GraphQL sorgusu veritabanından Id ve Name alanlarını seçer.
  • query nesnesi özelliğinde GraphQL sorgusunu query tutar.
  • GraphQL işlevine bağımsız değişken değerleri özelliği aracılığıyla query.variables geçirilir.
  • Sunucuya geçirilen istek, özelliğin query sorgu tanımını barındırdığı bir yük gerektirir.
  • Yanıt yükündeki veriler özelliğinde data.updatePerson bulunur.

Sayfayı yenileyin ve Oluştur düğmesini seçin.

Tarayıcının konsol penceresinde artık veritabanındaki yeni kaydı gösteren bir tablo görüntülenir.

Kimlik Veri Akışı Adı
3 Pedro

Sil

index.html etiketleri arasına script aşağıdaki kodu ekleyin.

async function del() {
  const id = 3;
  const endpoint = '/data-api/rest/Person/Id';
  const response = await fetch(`${endpoint}/${id}`, {
    method: "DELETE"
  });
  if(response.ok) {
    console.log(`Record deleted: ${ id }`)
  } else {
    console.log(response);
  }
}

Bu örnekte:

  • Uç nokta ile /person/Id/son eklenmiştir.
  • Kimlik değeri uç nokta konumunun sonuna eklenir.
  • REST fiili, veritabanı kaydını kaldırmaktır DELETE .
  • Silme işlemi başarılı olursa yanıt yükü ok özelliği olur true.
async function del() {

  const id = 3;

  const gql = `
    mutation del($id: Int!) {
      deletePerson(Id: $id) {
        Id
      }
    }`;

  const query = {
    query: gql,
    variables: {
      id: id
    }
  };

  const endpoint = "/data-api/graphql";
  const response = await fetch(endpoint, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(query)
  });

  const result = await response.json();
  console.log(`Record deleted: ${ result.data.deletePerson.Id }`);
}

Bu örnekte:

  • GraphQL sorgusu, alanı veritabanından seçer Id .
  • query nesnesi özelliğinde GraphQL sorgusunu query tutar.
  • GraphQL işlevine bağımsız değişken değerleri özelliği aracılığıyla query.variables geçirilir.
  • Sunucuya geçirilen istek, özelliğin query sorgu tanımını barındırdığı bir yük gerektirir.
  • Yanıt yükündeki veriler özelliğinde data.deletePerson bulunur.

Sayfayı yenileyin ve Sil düğmesini seçin.

Tarayıcının konsol penceresinde artık silme isteğinden gelen yanıtı gösteren bir tablo görüntülenir.

Kayıt silindi: 3

Artık sitenizle yerel olarak çalıştığınıza göre, artık bunu Azure'a dağıtabilirsiniz.

Sitenizi dağıtma

Bu siteyi üretim ortamına dağıtmak için yapılandırma dosyasını işlemeniz ve değişikliklerinizi sunucuya göndermeniz yeterlidir.

  1. İzlemek için dosya değişikliklerini ekleyin.

    git add .
    
  2. Yapılandırma değişikliklerini işleme.

    git commit -am "Add database configuration"
    
  3. Değişikliklerinizi sunucuya gönderme.

    git push origin main
    

Veritabanını statik web uygulamanıza bağlama

Sitenizin Statik Web Apps örneği ile veritabanınız arasında bağlantı oluşturmak için aşağıdaki adımları kullanın.

  1. Statik web uygulamanızı Azure portalında açın.

  2. Ayarlar bölümünde Veritabanı bağlantısı'nı seçin.

  3. Üretim bölümünün altında Var olan veritabanını bağla bağlantısını seçin.

  4. Var olan veritabanını bağla penceresinde aşağıdaki değerleri girin:

    Özellik Değer
    Veritabanı Türü Açılan listeden veritabanı türünüzü seçin.
    Abonelik Açılan listeden Azure aboneliğinizi seçin.
    Kaynak Grubu Veritabanınız için bir kaynak grubu seçin veya oluşturun.
    Kaynak Adı İstediğiniz veritabanını içeren veritabanı sunucusu adını seçin.
    Veritabanı Adı Statik web uygulamanıza bağlamak istediğiniz veritabanının adını seçin.
    Kimlik Doğrulaması Türü Bağlantı dizesi'ni seçin ve Azure SQL kullanıcı adını ve parolasını girin.
  5. Tamam'ı seçin.

Veritabanınızın Statik Web Apps kaynağınıza bağlı olduğunu doğrulayın

Veritabanınızı statik web uygulamanıza bağladıktan ve sitenin oluşturulması tamamlandıktan sonra, veritabanı bağlantısını doğrulamak için aşağıdaki adımları kullanın.

  1. Statik web uygulamanızı Azure portalında açın.

  2. Temel Bileşenler bölümünde Statik Web Apps kaynağınızın URL'sini seçerek statik web uygulamanıza gidin.

  3. Tüm öğeleri listelemek için Listele düğmesini seçin.

    Çıktı, bu ekran görüntüsünde gösterilene benzemelidir.

    Geliştirici araçları konsol penceresinde veritabanındaki kayıtları listeleme sonuçlarını gösteren web tarayıcısı.

Kaynakları temizleme

Bu öğretici sırasında oluşturulan kaynakları kaldırmak istiyorsanız veritabanının bağlantısını kaldırmanız ve örnek verileri kaldırmanız gerekir.

  1. Veritabanının bağlantısını kaldırma: Statik web uygulamanızı Azure portalında açın. Ayarlar bölümünde Veritabanı bağlantısı'nı seçin. Bağlı veritabanının yanında Ayrıntıları görüntüle'yi seçin. Veritabanı bağlantısı ayrıntıları penceresinde Bağlantıyı Kaldır düğmesini seçin.

  2. Örnek verileri kaldırma: Veritabanınızda adlı MyTestPersonTabletabloyu silin.

Sonraki adımlar