What is the best practice in Craft 3 to sync schema between environments? How can sync the schema (fields + categories + tags + sections) from development to staging and live? Or should I do it manually?
Is there any support to make migration script instead of do it from the webpage
With the release of Craft 3.1 you can now keep fields (and other things) in sync between multiple environments. 

Read more here: https://docs.craftcms.com/v3/project-config.html