  Many programs that interact with a database need to undergo schema
refactoring several times during their life cycle. Since this process typically
requires making significant changes to the program's implementation, schema
refactoring is often non-trivial and error-prone. Motivated by this problem, we
propose a new technique for automatically synthesizing a new version of a
database program given its original version and the source and target schemas.
Our method does not require manual user guidance and ensures that the
synthesized program is equivalent to the original one. Furthermore, our method
is quite efficient and can synthesize new versions of database programs
(containing up to 263 functions) that are extracted from real-world web
applications with an average synthesis time of 69.4 seconds.
