Really excellent overview of EF migrations. But a word to UA-cam content creators... if you say, "Hey, if you have any questions, leave them in the comments below and we'll answer them!", then you should actually do that. None of the questions below have been answered by James or Brice.
Thank you for this, it's a very good introduction to EF migrations. I have a quick question. Brice mentioned adding a new migration if you're trying to revert a change, but isn't that what the down method is supposed to be used for? If not, when would you use it, just for when you want to revert changes before updating the DB? Thanks again!
Anyone has any idea how do migrations work in team environments? When I merge other people's branch to mine, what should the step be to ensure that the migrations I've created and theirs (which happens to be in between) do not conflict? Should I remove my own migration, apply theirs and re-create my own migration again?
I do have a question... I've had great success with generating a sql script using Script-Migration command. However when we deploy, the customer would like to know if the number of rows in specific tables have changed before and after a migration. What I've done is manually added SQL statements (ex. DECLARE @someVariable as int; SELECT @someVariable = Count(*) FROM Table; PRINT @someVariable; GO; ) before the migration and then the same SQL statements at the end. My question now is, Is there a way to add custom SQL so that it appears at the beginning and/or end of the artifact generated by script-migration?
Can u create migrations for 2 types of databases at once eg mysql and sqlserver? Say if u have clients using your software but they want to run diff database types due to their environment stack ?
Great stuff but I have a question here. When you add any new entity to existing DbContext and then you apply migration, Why it generates all the entities instead of the one which is recently added ? Any idea ?
That [Required] attribute for 'Title' is no longer necessary if you have "Nullable reference types" enabled in C# right? Since the string is non-nullable EF Core would pick that up as nullable: false
Oh sh*, I apply migrations automatically on every deploy :D so far, all good for the last 3 years... but first, everything gets tested on DEV environment, so we know what to expect on PROD
2 роки тому
@@mojekonto9287 It was on a new website, but it was already on the production server. There were no users there yet, but still a very big problem. And the worst part is I have no idea what caused that.
@ if examining the auto-generated migrations code (the Up and Down) doesn't give any clues then maybe somebody had applied some other changes manually in between. Still, even if that was the case, i would expect that applying a migration on top of them could fail. From my experience, loss of data can usually be caused by a table column type change. Or maybe you executed a script that triggered a revert of all the migrations before applying them again. I think I have seen such approach in some automated integration tests.
2 роки тому
@@mojekonto9287 Now that you mentioned, I did change a column type. OMG and will it errase all data? I had no idea!!! THANK YOU SO MUCH!
Really excellent overview of EF migrations. But a word to UA-cam content creators... if you say, "Hey, if you have any questions, leave them in the comments below and we'll answer them!", then you should actually do that. None of the questions below have been answered by James or Brice.
This is great. Thank you for covering deployments and not just local development.
I can't imagine how much I would learn working with Brice. What a smart guy!
Great info in here. Thank you guys. Brice seems really cool and he's a solid teacher. He reminds me a lot of Scott Hanselman.
Thank you, James! I'm following all of your videos even in your channel, they are awesome! Keep going! ;)
Thank you for this, it's a very good introduction to EF migrations. I have a quick question. Brice mentioned adding a new migration if you're trying to revert a change, but isn't that what the down method is supposed to be used for? If not, when would you use it, just for when you want to revert changes before updating the DB? Thanks again!
Anyone has any idea how do migrations work in team environments? When I merge other people's branch to mine, what should the step be to ensure that the migrations I've created and theirs (which happens to be in between) do not conflict? Should I remove my own migration, apply theirs and re-create my own migration again?
This seems to be where migrations can turn into a hellscape
Great, when we will see part 2 of EF tutorial? :-)
I do have a question...
I've had great success with generating a sql script using Script-Migration command. However when we deploy, the customer would like to know if the number of rows in specific tables have changed before and after a migration. What I've done is manually added SQL statements (ex.
DECLARE @someVariable as int;
SELECT @someVariable = Count(*) FROM Table;
PRINT @someVariable;
GO;
) before the migration and then the same SQL statements at the end.
My question now is, Is there a way to add custom SQL so that it appears at the beginning and/or end of the artifact generated by script-migration?
Can u create migrations for 2 types of databases at once eg mysql and sqlserver? Say if u have clients using your software but they want to run diff database types due to their environment stack ?
Cool! How do I migrate from the first migration back to nothing in Azure SQL? Assuming that the database has been update with the first migration.
Great question! It's PM> update-database 0 and PM> Remove-Migration.
It would be also great to know how to tag project version for migrations so we can upgrade from 101.01 to 101.13 passing 01 to 12 changes
How to use code first if we want to encrypt columns in a database?
Great stuff but I have a question here. When you add any new entity to existing DbContext and then you apply migration, Why it generates all the entities instead of the one which is recently added ? Any idea ?
That [Required] attribute for 'Title' is no longer necessary if you have "Nullable reference types" enabled in C# right? Since the string is non-nullable EF Core would pick that up as nullable: false
Why would you ever need to remove a database if UPDATE-database is better? #EntityFramework #DotNet #Csharp
I applied a migration on a production server and it cleared all data...
Oh sh*, I apply migrations automatically on every deploy :D so far, all good for the last 3 years... but first, everything gets tested on DEV environment, so we know what to expect on PROD
@@mojekonto9287 It was on a new website, but it was already on the production server. There were no users there yet, but still a very big problem. And the worst part is I have no idea what caused that.
@ if examining the auto-generated migrations code (the Up and Down) doesn't give any clues then maybe somebody had applied some other changes manually in between. Still, even if that was the case, i would expect that applying a migration on top of them could fail. From my experience, loss of data can usually be caused by a table column type change. Or maybe you executed a script that triggered a revert of all the migrations before applying them again. I think I have seen such approach in some automated integration tests.
@@mojekonto9287 Now that you mentioned, I did change a column type. OMG and will it errase all data? I had no idea!!!
THANK YOU SO MUCH!
@ it may erase data only in that column, though. The rest should stay intact.
I see James wheels are turning. Time to update your Monkeys App and Coffee App
that looks like rails migration, ummm, convention over configuration, umm, you've been watching rails' world