Well, to determine the "best" answer, I'd want to know if you plan to bring back the blog posts that have not been migrated or if they are permanently removed from your website.
If they are permanently removed from the site, then the approach you've taken is an acceptable route. If there is a lot of traffic to some of those posts you've removed, it might make sense to better support visitors with a redirect to another related blog (i.e. you are removing a blog about blue widgets and you could redirect it to a blog you are keeping that talks about yellow widgets). Another alternative for the blogs you are removing that have little value (low traffic, no backlinks, etc.) is you could send those to an error page with a 410 response code (indicating, these lower value pages are permanently removed from the site--in essence saying to Google that you realize there is low value stuff on your site and you are cleaning it up).
Now, let's go the other direction. If you plan to keep these blog posts that you have not yet migrated, then this approach is definitely the wrong one and will cause some problems for you. You will want to switch that redirect status from 301 to 302 to indicate that the redirect to the home page isn't permanent (more about 301 and 302 redirects). Once you migrate over the posts, then you can redirect with a 301 from the old blog URL to the new blog URL. Otherwise, that 301 redirect will be seen as permanent and any future changes to the redirect (like changing from a redirect from the home page to the new location of the blog) could be ignored which would affect rankings/traffic.